Есть ли способ выполнить сценарий .bat? Дело в том, что у меня есть сценарий сборки, который вызывает множество других сценариев, и я хотел бы увидеть, в каком порядке они вызываются, чтобы я мог знать, где именно мне нужно идти, и добавлять свои модификации. .
windows
batch-file
debugging
cmd
Ваэрун
источник
источник
Ответы:
Я не знаю, как выполнить пошаговое выполнение файла .bat, но вы можете использовать
echo
иpause
для помощи в отладке.Источник: Справка по пакетному файлу
@ workmad3: в ответе есть еще полезные советы по работе с
echo
командой.Еще один полезный ресурс ... DDB: Советы по работе с пакетными файлами DOS
источник
Убедитесь, что в сценариях нет операторов «echo off», и вызывайте «echo on» после вызова каждого сценария, чтобы сбросить все, что вы пропустили.
Причина в том, что если оставить эхо включенным, то интерпретатор команд будет выводить каждую команду (после обработки параметров) перед ее выполнением. Это выглядит очень плохо для использования в производстве, но очень полезно для целей отладки, так как вы можете видеть, где что-то пошло не так.
Кроме того, убедитесь, что вы проверяете уровни ошибок, установленные вызываемыми пакетными скриптами и программами. Помните, что для этого в файлах .bat используются 2 разных метода. Если вы вызвали программу, уровень ошибки находится в% ERRORLEVEL%, тогда как из командных файлов уровень ошибки возвращается в переменной ErrorLevel и не требует символов% вокруг него.
источник
Столкнувшись с подобной проблемой, я нашел следующий инструмент с помощью простого поиска в Google:
" Take Command " от JPSoft включает в себя пакетный файл IDE / отладчик. Их короткое презентационное видео прекрасно это демонстрирует.
Использую пробную версию уже несколько часов. Вот мое первое скромное мнение:
Это делает попытку.
источник
Always quote the most relevant part of an important link
. Без ссылки этот ответ исчезает, что, опять же, вероятно, нормально, но обычно этот тип специального предложения непроверенного проприетарного программного обеспечения обычно лучше всего подходит для комментария. Не стесняйтесь оставить и его.Я обнаружил, что программное обеспечение «бегущие шаги» (win32) делает именно то, что я искал: http://www.steppingsoftware.com/
Вы можете загрузить файл bat, поставить точки останова / начать переходить через него, видя выходные данные и переменные среды.
В ознакомительной версии можно пройти только 50 строк ... Есть ли у кого-нибудь бесплатная альтернатива с аналогичной функциональностью?
источник
удалите @ECHO OFF и вызовите ваш командный файл перенаправьте ВСЕ выходные данные в файл журнала ..
c:> yourbatch.bat (необязательные параметры)> yourlogfile.txt 2> & 1
найдено на http://www.robvanderwoude.com/battech_debugging.php
ОНО РАБОТАЕТ!! не забывайте 2> & 1 ...
WIZ
источник
Единственный способ, который я могу придумать, - это посыпать код буквами
echo
s иpause
s.источник
Вы пытались перенаправить результат в файл? Как something.bat> log.txt
Вы должны убедиться, что в этом случае все остальные вызываемые скрипты также записываются в файл, например >> log.txt.
Кроме того, если вы поместите дату / T и время / T в начало и в конец этого командного файла, вы получите время, когда оно было в этот момент, и вы можете сопоставить время и порядок выполнения сценария.
источник
Или .... Вызовите свой основной файл .bat из другого файла .bat и выведите результат в файл результата, т.е.
runner.bat> mainresults.txt
Где runner.bat вызывает главный .bat файл
Теперь вы должны увидеть все действия, выполняемые в основном файле .bat
источник
Довольно частая проблема заключается в том, что пакетный сценарий запускается двойным щелчком по его значку. Поскольку при этом
cmd.exe
также завершается работа экземпляра командной строки хоста ( ), невозможно прочитать потенциальные выходные данные и сообщения об ошибках.Чтобы прочитать такие сообщения, очень важно, чтобы вы явно открывали окно командной строки, переходили в соответствующий рабочий каталог и запускали пакетный скрипт, введя его путь / имя.
источник
вы можете использовать
cmd \k
в конце вашего скрипта, чтобы увидеть ошибку. он не закроет вашу командную строку после завершения выполненияисточник
или откройте окно cmd, затем вызовите пакет оттуда, вывод будет на экране.
источник