Я использую robocopy для копирования из одного каталога в другой.
Я тестировал код, используя разные исходные каталоги, но получаю сообщение об ошибке при выполнении одного конкретного каталога:
set "source=C:\Program Files (x86)\Phoresis\Backup"
Я получаю сообщение об ошибке:
Неверный параметр 3 "(x86)\Phoresis\Backup"
Пробовали использовать одинарные кавычки и заключали назначения переменных в «», так как в путях к каталогам есть пробелы.
Код:
set "newDirectory=F:\Cap2 Flex Backup"
REM Timesatmp a new folder
set "DirName=%date:~-4,4%.%date:~-7,2%.%date:~0,2%.%time:~0,2%.%time:~3,2%
MD \%newDirectory%"
set "source=C:\Program Files (x86)\Phoresis\Backup"
robocopy %source% %DirName% /e /z /Mir
Пытаюсь разобраться с пробелами/специальными символами в сценариях/пакетах vb, поэтому любой ввод ценится.
Ваше здоровье
robocopy
командную строку наrobocopy "%source%" "%DirName%" /e /z /Mir
; 2. для чего нужна командная строкаMD
? ; вы создаете каталог, ноrobocopy
его не использует; и есть ведущий\`
, который следует заменить на"
; - person aschipfl   schedule 02.12.2015""
... - person aschipfl   schedule 02.12.2015set "VAR=a string"
присваиваетa string
переменнойVAR
без кавычек; кавычки просто избегают проблем со специальными символами, такими как&
,^
,(
,)
, ПРОБЕЛ,...; если такие символы не появляются, это то же самое, что иset VAR=a string
; поэтому версия в кавычках безопасна, а версия без кавычек - нет; но при расширении (чтении) переменной вы должны снова позаботиться о таких символах; в вашем случае без окружающих кавычек ПРОБЕЛ интерпретируется как разделитель аргументов, поэтомуC:\Program
,Files
и(x86)\Phoresis\Backup
- это три аргумента; - person aschipfl   schedule 02.12.2015MD
; должен ли он создать корневой каталог назначения, который содержит папку временных метокDirName
? как только у меня появится намерение, я опубликую ответ со всей информацией... - person aschipfl   schedule 02.12.2015