从列表中复制文件

时间:2012-12-19 18:18:30

标签: windows cmd

我有一个4000个.tif图像列表,我需要从包含20,000多张图像的文件夹中复制。

我正在尝试使用命令提示符来使用通过Google搜索我的问题找到的代码。

代码如下:

for /f %a in H:\list.txt do copy %a H:\new

"H:\list.txt" is my list file
"H:\new" is where i want my files to be copied to

我在包含.tif文件H:\Doc2的文件夹中运行此命令,并且我一直在:

  

H:\ list.txt此时出乎意料。

造成这个问题的原因是什么?我的列表没有正确设置吗?

看起来像这样:

ABBA.TIF
ABBD.TIF
ABBQ.TIF

我是否需要文件名后的逗号或冒号?

2 个答案:

答案 0 :(得分:2)

H:\list.txt是一个文字,你想循环遍历文件的每一行。看看这个:

How do you loop through each line in a text file using a windows batch file?

for /F "tokens=*" %%A in (myfile.txt) do [process] %%A

建议:也可以用“windows”标记。

答案 1 :(得分:2)

Amir诊断出您的直接问题 - 您的代码缺少IN子句中的括号。

但是你有另一个潜在的问题。您的列表可能包含文件名和/或包含空格或其他特殊字符的路径。如果是,则必须引用该名称。

列表中的值可能已经引用,或者它们可能没有。您可以使用~修饰符去除任何可能存在或不存在的现有封闭引号,然后显式添加自己的引号。

for /f %a in (H:\list.txt) do copy "%~a" H:\new

如果要在批处理文件中包含该行,则每个%必须加倍%%