forfiles 在文件夹路径中有 space
forfiles has space in folder path
我想尝试 bat
文件将我的日志复制到其他 space。
我的代码:
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 has spaces in folder path?
像这样:E:\Logs_test\AddressBook Service
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"
语法中的双引号。
我想尝试 bat
文件将我的日志复制到其他 space。
我的代码:
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 has spaces in folder path?
像这样:E:\Logs_test\AddressBook Service
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"
语法中的双引号。