forfiles在文件夹路径中有空格

时间:2015-10-13 09:41:00

标签: batch-file for-loop xcopy

我想尝试将bat文件复制到其他空间。

我的代码:

REM get date
FOR /F "tokens=1-4 delims=/ " %%a IN ("%date%") DO (SET _MyDate=%%d/%%b/%%c)
echo _MyDate: %_MyDate%    
set _path= "D:\Logs\AddressBook Service"
set _path2= "E:\Logs_test\AddressBook Service"
forfiles /p %_path% /d -%_day% /m *.log /c "cmd /c xcopy @path %_path2%"

我的问题是如何解决forfiles @path在文件夹路径中有空格?

像这样:E:\Logs_test\AddressBook Service

1 个答案:

答案 0 :(得分:0)

set "_day=2"                             only my guess
set "_path=D:\Logs\AddressBook Service"
set "_path2=E:\Logs_test\AddressBook Service"
forfiles /p "%_path%" /d -%_day% /m *.log /c "cmd /c echo xcopy @path \"%_path2%\\\" /D /E /-Y"

上面的代码段中包含正确的escaped "双引号(使用反斜杠\"而不是普通插入符号令人惊讶地转义)应该会产生类似

的内容
xcopy "D:\Logs\AddressBook Service\some name.log" "E:\Logs_test\AddressBook Service\" /D /E /-Y

请注意,仅出于调试目的显示操作xcopy。请勿在调试后删除echo关键字 向xcopy目标文件夹(%_path2%\\)添加尾部反斜杠似乎是兼容性(可选)补充。
最后,请注意set "variablename=variable value"语法中的双引号。