我正在编写一个Win 7批处理脚本,用于将文件从各种源路径复制到一个位置。正在复制的文件的完整路径名列在文本文件中。
当源路径不包含空格时,以下脚本有效。如果路径名作为常量包含在引号和%~1
的组合中,我可以处理空格。如何为作为参数传递的路径模拟此组合?
Transfer2.bat:
set SOURCELIST=c:\Temp\List1.txt
set DEST=c:\Temp\To
for /f %%A in (%SOURCELIST%) do (forfiles /p %%~dpA /s /m %%~nxA /c "cmd /c copy /y @path %DEST%\@file" 2>>log.txt)
for /f %b in (log.txt) do (echo.%~b)>>log.txt`
del log.txt
List1.txt:
C:\temp\From\Test_This Space.txt
C:\temp\From\Test.txt
结果:
C:\temp\From\Test.txt
的转移成功。
日志返回
ERROR: Files of type "Test_This" not found.
的{{1}}。
答案 0 :(得分:1)
脚本需要forfiles
命令吗?如果没有,我认为这已经足够了:
@echo off
set SOURCELIST=C:\Temp\List1.txt
set DEST=C:\Temp\To
for /f "delims=" %%A in (%SOURCELIST%) do (
copy /y "%%~fA" "%DEST%\%%~nxA" >>Log.txt 2>&1
)
type Log.txt
del /q Log.txt
pause
exit /b