PowerShell批量处理CSV数据自动执行复制与Robocopy命令求助
问题描述
需要通过PowerShell读取包含asset和computername两列的CSV文件,自动批量执行以下两项操作:
- 将
c:\folder1\$asset.txt复制并重命名为f:\folder2\config.txt - 使用
robocopy命令将f:\folder2复制到\\$ComputerName\folder3
当前脚本需手动修改数组索引,无法自动遍历50+条数据,求自动批量处理的方法。
CSV示例(Computers.csv)
A12345 CN12345 A54321 CN54321
尝试的脚本1
Import-Csv -Delimiter ',' -Path c:\temp\computers.csv -Header 'Asset','ComputerName’ | ForEach-Object { $asset += $_.asset $ComputerName += $_.NBN Copy-Item "c:\folder1\$asset.txt" -Destination "f:\folder2\config.txt" robocopy /e f:\folder2 \\$ComputerName\folder3 }
尝试的脚本2
$computers = Import-Csv -Path c:\temp\computers.csv -Header 'Asset','ComputerName' $asset = $computers[0].asset $ComputerName = $computers[0].ComputerName ForEach-Object { Copy-Item "c:\folder1\$asset.txt" -Destination "f:\folder2\config.txt" robocopy /e /is "f:\folder2\" "\\$ComputerName\c$\folder3" }
批量处理解决方案
以下是可自动遍历所有CSV条目并执行操作的正确脚本:
# 读取CSV文件,根据你的示例,分隔符为制表符(若实际是空格则替换为' ') $computers = Import-Csv -Path "c:\temp\computers.csv" -Header 'Asset','ComputerName' -Delimiter "`t" # 遍历每条记录 foreach ($pc in $computers) { # 1. 复制并重命名文件 $sourceFile = "c:\folder1\$($pc.Asset).txt" $destFile = "f:\folder2\config.txt" # 先检查源文件是否存在,避免报错 if (Test-Path $sourceFile) { Copy-Item -Path $sourceFile -Destination $destFile -Force Write-Host "已完成文件复制: $sourceFile -> $destFile" } else { Write-Warning "源文件 $sourceFile 不存在,跳过当前设备" continue } # 2. 执行robocopy同步文件夹 $robocopySource = "f:\folder2" $robocopyDest = "\\$($pc.ComputerName)\folder3" robocopy /e /is $robocopySource $robocopyDest Write-Host "已完成同步: $robocopySource -> $robocopyDest" }
原脚本问题说明
脚本1:
- 错误使用逗号作为分隔符,但你的CSV是空格/制表符分隔,导致数据读取异常
- 累加变量
$asset += $_.asset会让变量变成多值拼接,无法匹配单个文件 - 引用了不存在的属性
$_.NBN,正确应为$_.ComputerName
脚本2:
- 仅获取数组第一个元素
$computers[0],未遍历所有条目 ForEach-Object未指定遍历对象,无法触发循环
- 仅获取数组第一个元素
注意事项
- 确保CSV分隔符与脚本中
-Delimiter参数一致,空格分隔则改为' ' - 确认执行脚本的账号有权限访问目标共享文件夹
\\$ComputerName\folder3 Copy-Item的-Force参数用于覆盖已存在的config.txt,可根据需求移除robocopy返回码0-7均为正常完成,如需错误判断可添加对应逻辑
内容的提问来源于stack exchange,提问作者Robert Ward
相关产品推荐
相关产品推荐

