Почему выполнение командного сценария заканчивается неожиданно в операторе IF / ELSE? - PullRequest
0 голосов
/ 23 ноября 2018

Когда скрипт попадает в оператор IF , он просто заканчивается.Он не переходит к следующей строке, которая pause для отладки.

set yymm=%DATE:~12,2%%DATE:~4,2%
set DD=%DATE:~7,2%
robocopy "\\client system\Users\login name\Videos" "F:\Temporary\Videos\Process\New Batch\%yymm%%dd%\Netbook\Videos" /mir
set /p %user%=Did Netbook Videos complete? (y/n): 
IF %user%=="y" (del "\\client system\Users\login name\Videos\"*.* /s/q) ELSE (echo Skipping)

Я знаю, что для команды robocopy есть переключатель /move.Но он говорит мне, что у него нет доступа к папке назначения.Пакетная программа запускается с правами администратора и работает в профиле, который создал папку.Поэтому я написал обходной путь.

Почему это происходит?

1 Ответ

0 голосов
/ 23 ноября 2018

Я рекомендую сначала прочитать следующие ответы:

В приведенном ниже пакетном файле предполагается, что подстановки строк, выполненные со значением переменной динамического окружения DATE, работают с используемой учетной записью пользователя, поскольку формат даты зависит от того, какой регион / страна / языковой стандарт установлен для используемой учетной записи пользователя..

set "yymm=%DATE:~12,2%%DATE:~4,2%"
set "DD=%DATE:~7,2%"
%SystemRoot%\System32\robocopy.exe "\\client system\Users\login name\Videos" "F:\Temporary\Videos\Process\New Batch\%yymm%%dd%\Netbook\Videos" /mir
%SystemRoot%\System32\choice.exe /N /M "Did Netbook Videos complete? (y/n): "
if errorlevel 2 (echo Skipping) else del /S /Q "\\client system\Users\login name\Videos\*"

Предлагаю также прочитать Как удалить файлы / подпапки в определенном каталоге в командной строке в Windows? Используемая здесь команда DEL не используетсяудалите все файлы и оставьте позади подкаталоги, которые, скорее всего, будут пустыми после удаления большинства или случайно всех видеофайлов.Но было бы неплохо избежать удаления скрытого системного файла desktop.ini в каталоге videos учетной записи пользователя, на который обычно ссылается %USERPROFILE%\Videos.

Чтобы понять используемые команды и то, как они работают, откройте командув окне подсказки выполните там следующие команды и внимательно прочитайте все страницы справки, отображаемые для каждой команды.

  • choice /?
  • del /?
  • echo /?
  • if /?
  • robocopy /?
  • set /?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...