由于文件名中的空格,FOR循环不起作用

时间:2016-09-15 21:28:26

标签: windows batch-file cmd

在批处理文件中,我有这个用于复制文件的代码:

else:
    return 'Only lists allowed'

问题是它不会复制文件名中包含空格的文件,例如FOR /F "tokens=*" %%f IN ('DIR /S /B *.png,*.jpg,*.pneg,*.jpeg') DO ( XCOPY /H /S /Y /EXCLUDE:%EXFdestination%\EXF.txt %%~f "%destination%\" ) ,它只会复制文件名为D:\Exemple Directory\file.jpg

的文件

我尝试使用D:\ExampleDirectory\file.jpg代替tokens=*,但它无法解决问题。

2 个答案:

答案 0 :(得分:1)

足够简单:使用"%%~f"代替%%~f

答案 1 :(得分:0)

您可以绕过for循环并使用Robocopy。

以下是一个例子:

ROBOCOPY "C:\Source" "C:\Destination" *.png *.jpg *.pneg *.jpeg /s

还有排除选项 / XF / XD ,但我们还没有看到您的排除文件 EXF.txt 的内容。