如何使用PowerShell根据CSV文件的Action字段执行文件复制删除操作
PowerShell 实现 CSV 匹配文件跨盘迁移方案
实现逻辑说明
- 首先读取空格分隔的CSV文件,逐行解析文件名和Action标记
- 对Action值为
1的文件:- 将源路径的盘符
C:\替换为目标盘符D:\,得到目标路径 - 自动创建目标路径对应的父级目录(不存在的话自动生成)
- 复制文件到目标路径后删除C盘源文件
- 将源路径的盘符
- Action值为
0的文件直接跳过不处理
完整可运行脚本
# 请替换为你的CSV文件实际路径 $csvPath = "C:\你的文件列表.csv" # 导入空格分隔的CSV文件,如果实际是逗号分隔可将Delimiter参数值改为',' $fileList = Import-Csv -Path $csvPath -Delimiter ' ' foreach ($item in $fileList) { # 只处理Action为1的条目 if ($item.Action -eq '1') { $sourcePath = $item.Filename # 替换盘符得到目标路径 $destPath = $sourcePath -replace '^C:\\', 'D:\' # 创建目标路径的父目录,不存在则自动生成,不输出冗余日志 $destDir = Split-Path -Path $destPath -Parent if (-not (Test-Path -Path $destDir)) { New-Item -Path $destDir -ItemType Directory -Force | Out-Null } # 复制文件到目标路径 Copy-Item -Path $sourcePath -Destination $destPath -Force # 确认复制成功后删除源文件,测试阶段可以先注释掉这一段验证结果 if (Test-Path -Path $destPath) { Remove-Item -Path $sourcePath -Force } } }
注意事项
- 首次运行建议先注释掉
Remove-Item相关代码,验证D盘生成的文件路径和内容正确后再取消注释执行删除操作,避免误删数据 - 脚本需要以拥有C盘文件读取、删除权限和D盘写入权限的身份运行
内容的提问来源于stack exchange,提问作者johnt
相关产品推荐
相关产品推荐

