Замедление пакетного файла до ошибок чтения
С пакетной загрузкой, если вы получите сообщение об ошибке, самое большее, что вы видите, это вспышка текста, а затем программа заканчивается. Так или иначе, чтобы это замедлялось? или чтобы он остановился до закрытия, когда он попал в ошибку?
Спасибо
Ответы
Ответ 1
Если вы выполняете пакетный файл из командной строки в окне MS-DOS и возникает ошибка, вы можете просто просмотреть текст в окне, чтобы узнать, что произошло.
С другой стороны, если вы выполняете пакетный файл с помощью двойного щелчка в проводнике, вы ничего не видите, если в пакетном файле есть ошибка. Это ваш случай? Если это так, самым простым решением является проверка командного файла в окне MS-DOS, пока он не будет работать нормально.
Однако, если вам все еще нужен способ остановить закрытие окна DOS при завершении пакетного файла, вы можете сделать это следующим образом:
- Щелкните правой кнопкой мыши на своем пакетном файле и выберите "Создать shorcut", создан Shorcut.
- Щелкните правой кнопкой мыши ярлык и выберите "Свойства"
- В Target, после строки "C:\Path\filename.bat" add: и PAUSE
- Выберите ОК
Таким образом, когда вы выполняете ярлык с помощью двойного щелчка, окно DOS будет запускать ПАУЗА после окончания пакетного файла по любой причине.
Ответ 2
Перенаправить вывод с помощью > , чтобы записать его в файл.
Вам может понадобиться: command > file 2 > & 1
Ответ 3
Запустите script из текущего CMD.exe и добавьте "exit/b 1" в конец файла сценариев. Удалите любой простой "выход".
Ответ 4
Откройте новое окно cmd и выполните там свою команду. Открытое окно не будет закрыто при возникновении ошибки.
start cmd /k [command]
Это работает для меня с помощью основных команд. Не уверен, что он полезен для чего-то более продвинутого.
Ответ 5
попробуйте следующее:
if NOT ["%errorlevel%"]==["0"] (
pause
exit /b %errorlevel%
)
Ответ 6
Чтобы остановить пакет script до его завершения, поместите команду pause
в новую строку, которая заставит script ждать ввода пользователем (например, клавишу ввода) перед продолжением (или закрытием).
Ответ 7
для второй
PING -n 2 127.0.0.1 > NUL 2>&1
или за 10 секунд
timeout /t 10 /nobreak
Ответ 8
Это работает для меня. Аналогично ответу @Sri7, но вам нужны скобки и кавычки:
if NOT ERRORLEVEL 0 (
pause
)