Вопрос

Есть ли способ пошагово выполнить скрипт .bat?Дело в том, что у меня есть скрипт сборки, который вызывает множество других скриптов, и я хотел бы посмотреть, в каком порядке они вызываются, чтобы я мог знать, куда именно мне нужно перейти, и добавить свои изменения.

Это было полезно?

Решение

Я не знаю, как выполнить пошаговое выполнение файла .bat, но вы можете использовать echo и pause чтобы помочь с отладкой.

ЭХО
Отобразит сообщение в пакетном файле.Такие, как ECHO Hello World, при выполнении выведут на экран Hello World.Однако без @ECHO OFF в начале командного файла вы также получите "ECHO Hello World" и "Привет, мир". Наконец, если вы просто хотите создать пустую строку, введите ECHO.добавление точки в конце создает пустую строку.

ПАУЗА
Предложите пользователю нажать любую клавишу, чтобы продолжить.

Источник: Справка по пакетному файлу

@workmad3:в ответе содержится больше полезных советов по работе с echo команда.

Еще один полезный ресурс... DDB:Советы по пакетному файлу DOS

Другие советы

Убедитесь, что в скриптах нет операторов 'echo off', и после вызова каждого скрипта вызовите 'echo on', чтобы сбросить пропущенные вами.

Причина в том, что если оставить эхо-сигнал, то интерпретатор команд будет выводить каждую команду (после обработки параметров) перед ее выполнением. Это выглядит очень плохо для использования в производстве, но очень полезно для целей отладки, так как вы можете увидеть, где выходной файл пошёл не так.

Также убедитесь, что вы проверяете уровни ErrorLevel, установленные вызываемыми пакетными сценариями и программами. Помните, что для этого в файлах .bat используются 2 разных метода. Если вы вызвали программу, уровень ошибки находится в% ERRORLEVEL%, в то время как из пакетных файлов уровень ошибки возвращается в переменной ErrorLevel и не нуждается в% вокруг него.

Столкнувшись с аналогичной проблемой, я нашел следующий инструмент с помощью тривиального поиска в Google :

jpsoft's "Принимайте Командование" включает в себя командный файл IDE / debugger.Их короткое презентационное видео прекрасно демонстрирует это.

Я использую пробную версию уже несколько часов.Вот мое первое скромное мнение:

  • С одной стороны, это действительно позволяет отлаживать скрипты .bat и .cmd, и теперь я убежден, что это может помочь во многих случаях
  • С другой стороны, иногда он блокируется, и мне приходилось его отключать...особенно при отладке нижних индексов (не всегда систематически)..он не показывает ни "стек вызовов", ни кнопку "выйти".

Это требует попытки.

Я обнаружил, что программное обеспечение 'running steps' (win32) делает именно то, что искал: http://www.steppingsoftware.com/

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

Пробная версия позволяет пройти только 50 строк ... Есть ли у кого-нибудь бесплатная альтернатива с похожими функциями?

отключите @ECHO и вызовите свой пакетный файл, перенаправляющий ВСЕ выходные данные в файл журнала..

c:> yourbatch.bat (необязательные параметры) > yourlogfile.txt 2>&1

найдено по адресу http://www.robvanderwoude.com/battech_debugging.php

ЭТО РАБОТАЕТ!!не забывайте о 2>и1...

ВОЛШЕБНИК

Я могу думать только о том, чтобы посыпать код с помощью echo и pause s.

Вы пытались перенаправить результат в файл? Как и все .bat > log.txt

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

Кроме того, если вы поместите дату / T и время / T в начало и в конец этого пакетного файла, вы получите время, которое было в тот момент, и можете отобразить время и порядок выполнения вашего скрипта.

Или....Вызовите ваш основной файл .bat из другого файла .bat и выведите результат в результирующий файл, т.е.

бегун.летучая мышь > mainresults.txt

Где runner.bat вызывает основной файл .bat

Теперь вы должны увидеть все действия, выполненные в файле main .bat

или, откройте окно cmd, затем вызовите пакет оттуда, вывод будет на экране.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top