我有一个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
我是否需要文件名后的逗号或冒号?
答案 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
如果要在批处理文件中包含该行,则每个%
必须加倍%%
。