如何将文本中的文件复制到同一文本文件

时间:2015-09-29 14:32:44

标签: windows powershell batch-file cmd

我有一个文本文件,其中包含文件名和它们要去的路径,用逗号分隔。我需要创建一个批处理文件来搜索一个目录中的文件,并将它们复制到各自的目的地。

文本文件如下所示:

12345.pdf, C:\SomeDirectory\1 
54321.pdf, C:\SomeDirectory\2
67891.pdf, C:\SomeDirectory\3

pdf文件都在一个没有子目录的文件夹中。该命令将在逗号之前获取文件名,在源中查找文件,并将它们复制到文本文件中同一行上逗号后面所述的路径。

我假设PowerShell也是一种选择。

以下是我的尝试:

FOR /F  "tokens=1,2" delims =," %%G IN (PDF_MISSING.txt) DO @echo copy /Y "W:\GasImages\ServiceCards\All_PDF\%%G" "%%H"

此外:

FOR /F  "tokens=1,2" delims =," %%G IN (PDF_MISSING.txt) DO @echo copy /Y "W:\GasImages\ServiceCards\All_PDF\%%G" "%%H"

这两个都返回“命令的语法不正确”

1 个答案:

答案 0 :(得分:1)

错误的语法。正确的语法:

FOR /F "tokens=1,2 delims=," %%G IN ...

注意:空格(逗号后面)将是%%H

值的一部分

您可以将空格添加到分隔符,但是当任何路径包含预期空间时,您将遇到问题。如果你确定,就没有一个:

FOR /F "tokens=1,2 delims=, " %%G IN ...