Очень часто вы можете столкнуться с проблемами при запуске пакетных файлов, и чаще всего вам потребуется отладка ваших пакетных файлов тем или иным способом, чтобы определить проблему с самим пакетным файлом. Ниже приведены некоторые методы, которые могут помочь в отладке файлов Batch Script.
Сообщения об ошибках
Чтобы обнаружить источник сообщения, выполните следующие действия.
Шаг 1 — УДАЛИТЕ строку @ECHO OFF, т.е. REM @ECHO OFF или :: @ECHO OFF.
Шаг 2 — Запустите командный файл с необходимыми параметрами командной строки, перенаправив весь вывод в файл журнала для последующего сравнения.
test.bat > batch.log 2>&1
Шаг 3 — Найдите в файле batch.log сообщения об ошибках.
Шаг 4 — Проверьте предыдущую строку на наличие каких-либо неожиданных или недействительных команд, параметров командной строки или значений; обратите особое внимание на значения любых переменных среды, используемых в команде.
Шаг 5 — Исправьте ошибку и повторяйте этот процесс, пока все сообщения об ошибках не исчезнут.
Сложные Командные Линии
Другим распространенным источником ошибок являются неправильно перенаправленные команды, такие как, например, «вложенные» команды FIND или FINDSTR с неверными строками поиска, иногда внутри цикла FOR / F.
Чтобы проверить правильность этих сложных команд, выполните следующие действия:
Шаг 1 — Вставьте «строки проверки команд» непосредственно перед строкой, которая использует комплексный набор команд.
Ниже приведен пример, в котором команда ECHO вставлена, чтобы отметить, где заканчивается вывод первой команды TYPE и начинается следующая.
TYPE %Temp%.\apipaorg.reg ECHO.================================================ TYPE %Temp%.\apipaorg.reg | FIND "[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\TCPIP\Parameters\Interfaces\"
Шаг 2 — Следуйте процедуре, чтобы найти источники сообщений об ошибках, описанных выше.
Шаг 3 — Обратите особое внимание на вывод «упрощенных» командных строк: выводится ли ожидаемый формат? Является ли значение токена или позиция ожидаемой?
подпрограммы
Подпрограммы, генерирующие сообщения об ошибках, создают дополнительную «проблему» в поиске причины ошибки, так как они могут вызываться несколько раз в одном пакетном файле.
Чтобы выяснить, что вызывает неправильный вызов подпрограммы, выполните следующие действия:
Шаг 1 — Добавить и сбросить переменную счетчика в начале скрипта —
SET Counter = 0
Шаг 2 — Увеличивайте счетчик каждый раз, когда вызывается подпрограмма, вставляя следующую строку в начале подпрограммы
SET /A Counter+=1
Шаг 3 — Вставьте еще одну строку сразу после приращения счетчика, содержащую только команду SET; это перечислит все переменные окружения и их значения.
Шаг 4 — Следуйте процедуре, чтобы найти источники сообщений об ошибках, описанных выше.
Версии Windows
Если вы собираетесь распространять свои пакетные файлы на другие компьютеры, на которых может работать или не работать одна и та же версия Windows, вам необходимо протестировать свои пакетные файлы в максимально возможном количестве версий Windows.
В следующем примере показано, как проверить различные версии операционной системы, чтобы проверить соответствующие версии Windows.