Замедление пакетного файла до ошибок чтения

С пакетной загрузкой, если вы получите сообщение об ошибке, самое большее, что вы видите, это вспышка текста, а затем программа заканчивается. Так или иначе, чтобы это замедлялось? или чтобы он остановился до закрытия, когда он попал в ошибку?

Спасибо

Ответ 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
)