从制表符分隔文件批量复制文件

时间:2012-07-12 13:47:09

标签: powershell batch-file copy

我有一个制表符分隔文件,第一列包含文件的当前位置,第二列包含我希望将文件复制到的位置。

如何创建脚本来自动执行此操作,例如Powershell或Windows Batch?

非常感谢

布伦丹

1 个答案:

答案 0 :(得分:3)

如果CSV中的列名为PathDestination,则以下情况有效:

Import-Csv foo.csv -Delimiter "`t" | Copy-Item

如果您的列名称不同(FileTargetPath此处),则需要进行一些翻译:

Import-Csv foo.csv -Delimiter "`t" | ForEach-Object {
  Copy-Item -Path $_.File -Destination $_.TargetPath
}

如果您根本没有列标题,则需要告诉Import-Csv

Import-Csv foo.csv -Delim "`t" -Headers Path,Destination | Copy-Item

批处理文件中的相同内容:

for /f "skip=1 tokens=1,2 delims=   " %%A in (foo.csv) do (
  rem                             ↖ that's a tab
  copy "%%~A" "%%~B"
)