Robocopy Batchscript продолжает перезапуск - PullRequest
0 голосов
/ 24 августа 2018

Я хотел бы сделать резервную копию моих личных данных на сетевом диске в моей частной сети. Для этого я попытался использовать этот скрипт:

echo started robocopy

:: User
robocopy C:\Users\%USERNAME% Y:\BACKUP\C\Users\%USERNAME% /z /mir /xj

но скрипт продолжает перезапускаться *

PS C:\tools\Utility> .\Robocopy.bat

C:\Users\MyUser\SAVE\Skripte\Utility>echo started robocopy
started robocopy

C:\Users\MyUser\SAVE\Skripte\Utility>robocopy C:\Users\MyUser Y:\BACKUP\C\Users\MyUser /z /mir /xj

C:\Users\MyUser\SAVE\Skripte\Utility>echo started robocopy
started robocopy

C:\Users\MyUser\SAVE\Skripte\Utility>robocopy C:\Users\MyUser Y:\BACKUP\C\Users\MyUser /z /mir /xj

C:\Users\MyUser\SAVE\Skripte\Utility>echo started robocopy
started robocopy

C:\Users\MyUser\SAVE\Skripte\Utility>robocopy C:\Users\MyUser Y:\BACKUP\C\Users\MyUser /z /mir /xj

C:\Users\MyUser\SAVE\Skripte\Utility>echo started robocopy
started robocopy

C:\Users\MyUser\SAVE\Skripte\Utility>robocopy C:\Users\MyUser Y:\BACKUP\C\Users\MyUser /z /mir /xj

C:\Users\MyUser\SAVE\Skripte\Utility>echo started robocopy
started robocopy

Кажется, он выполняет каждый шаг в CLI. Как мне изменить это поведение?

1 Ответ

0 голосов
/ 24 августа 2018

Никогда не вызывайте командные файлы так же, как системные команды.

Как работает cmdline и batch:

Сначала он проверит локальный каталог, откуда запускается файл, для файла, который вы вызываете. Затем он проверит системную и пользовательскую переменную среды для файла, который вы вызываете.

В этом случае вы не указали полный исполняемый файл robocopy.exe, и он вызвал локальный файл robocopy.bat, как он был найден первым. Если бы вы вызвали robocopy.exe, он бы не запустил .bat, однако в качестве хорошей меры всегда называйте командные файлы чем-то, распознающим, что он запускает в сочетании с тем, что он делает. То есть robocopy_backups.bat

...