我想尝试将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
答案 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"
语法中的双引号。