Я пишу сценарий партии 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.
дляC:\temp\From\Test_This Space.txt
.
я бы не использовать 'forfiles' в этом случае, так как его переменные, такие как' @ File' содержат заключающий '«»' и так строит путь '% DEST % \ @ file' фактически расширяется до 'c: \ Temp \ To \" Test.txt "' ... – aschipfl
Благодарим вас за разработку предложения I_Know_Null. – user3864446