Учебники

Пакетный скрипт — отладка

Очень часто вы можете столкнуться с проблемами при запуске пакетных файлов, и чаще всего вам потребуется отладка ваших пакетных файлов тем или иным способом, чтобы определить проблему с самим пакетным файлом. Ниже приведены некоторые методы, которые могут помочь в отладке файлов 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.