您当前的代码甚至没有传递filename
to copyfiles.bat
,因此无论有没有空格,它都不起作用。(如果您需要确认,请echo %1 %filename & pause
在该copy
行之前添加copyfiles.bat
并运行cstart.bat
。)
话虽如此,您可以轻松地在一个文件中完成所有操作:
for /f %%x "tokens=1 delims=*" in (files.txt) do copy "C:\Temp\%%x" "C:\Temp\pruned files\%%x"
为确保它正常工作,只需将copy
上面一行中的替换为echo
并从命令提示符运行它。
我用一个名为的文本文件对此进行了测试,该文件test.txt
包含以下内容:
One.txt
Two.txt
Three.txt
And Four.txt
带有一个名为的批处理文件testcopy.bat
,其中包含:
@echo off
for /f "tokens=1 delims=*" %%x in (test.txt) do echo "C:\Temp\%%x" "C:\Temp\test this\%%x"
上面的测试显示了这个输出:
e:\TempFiles>testcopy
"C:\Temp\One.txt" "C:\Temp\test this\One.txt"
"C:\Temp\Two.txt" "C:\Temp\test this\Two.txt"
"C:\Temp\Three.txt" "C:\Temp\test this\Three.txt"
"C:\Temp\And Four.txt" "C:\Temp\test this\And Four.txt"