Замедление пакетного файла для чтения ошибок - PullRequest
12 голосов
/ 23 октября 2011

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

Спасибо

Ответы [ 8 ]

14 голосов
/ 23 октября 2011

Если вы выполняете свой пакетный файл из командной строки в окне MS-DOS, и возникает ошибка, вы можете просто просмотреть текст в окне, чтобы увидеть, что произошло.

С другой стороны, если вы запустите Batch-файл двойным щелчком в проводнике, вы ничего не увидите, если в Batch-файле возникла ошибка. Это твой случай? Если это так, то самое простое решение - проверить пакетный файл в окне MS-DOS, пока он не заработает.

Однако, если вам все еще нужен метод для остановки закрытия окна DOS по окончании пакетного файла, вы можете сделать это следующим образом:

  • Щелкните правой кнопкой мыши по вашему пакетному файлу и выберите «Создать ярлык», будет создан ярлык.
  • Щелкните правой кнопкой мыши по ярлыку и выберите Свойства
  • В Target после строки «C: \ Path \ filename.bat» добавить: & PAUSE
  • Выберите ОК

Таким образом, когда вы выполняете Ярлык с помощью двойного щелчка, окно DOS выполнит PAUSE после того, как пакетный файл закончится по любой причине.

4 голосов
/ 23 октября 2011

Перенаправить вывод с помощью>, чтобы записать его в файл.

Вам может понадобиться: команда > file 2> & 1

3 голосов
/ 06 декабря 2016

попробуйте это:

if NOT ["%errorlevel%"]==["0"] (
    pause
    exit /b %errorlevel%
)
3 голосов
/ 16 декабря 2015

Откройте новое окно cmd и выполните там свою команду.Вновь открытое окно не будет закрыто при возникновении ошибки.

start cmd /k [command]

Это работает для меня с основными командами.Не уверен, что это полезно для чего-то более продвинутого.

3 голосов
/ 25 октября 2011

Запустите скрипт из существующего CMD.exe и добавьте «exit / b 1» в конец файла скриптов.Удалите любой простой «выход».

2 голосов
/ 23 октября 2011

Чтобы остановить пакетный скрипт до его завершения, поместите команду pause в новую строку, которая заставит скрипт ждать ввода пользователя (например, клавиши ввода) перед продолжением (или закрытием).

0 голосов
/ 11 мая 2019

Это работает для меня. Аналогично ответу @ Sri7, но вам нужны скобки и кавычки:

if NOT ERRORLEVEL 0 (
   pause
)
0 голосов
/ 03 сентября 2017

за секунду

PING -n 2 127.0.0.1 > NUL 2>&1

или за 10 сек

timeout /t 10 /nobreak
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...