1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
Часто, при выполнении сложного bat файла в автоматическом режиме проверить результаты его работы бывает затруднительно по многим причинам. Поэтому проще записывать результаты работы команд batch файла в текстовый файл (лог-файл). а потом анализировать правильность работы bat файла по этому логу. Перенаправить результат работы команд bat файла в лог-файл достаточно просто. Далее будет показано, как это можно сделать. Создайте bat-файл следующего содержания (скопируйте эти строки в Блокнот и сохраните файл с расширением bat): @echo off echo Start %time% echo Create test.txt echo test>C:\test.txt echo Copy Test.txt to Old_test.txt copy C:\test.txt C:\Old_test.txt echo Stop %time% Первая строка отключает вывод самих команд. Таким образом, в лог-файл будут записаны только результаты их выполнения. Вторая строка записывает в лог-файл время начала работы пакетного файла. Третья строка записывает в лог-файл пояснение того, что следующая команда создаст файл test.txt Команда из четвертой строки создает файл test.txt с корне диска С. Файл создается для примера. Эта команда записывает в файл C:\test.txt слово test Пятая строка выводит в лог-файл пояснение, что следующая команда выполняет копирование файла из одного места в другое. Команда в шестой строке копирует созданный файл C:\test.txt в файл C:\Old_test.txt, т.е. создается копия файла под новым именем. Последняя, седьмая строка содержит команду вывода времени завершения работы пакетного файла. В сумме с записью в лог-файл времени начала работы пакетного файла эти два значения времени дают возможность оценить время работы пакетного файла. Сохраните этот пакетный файл под именем, например, 1.bat Предположим, что отчет о работе пакетного файла мы бы хотели хранить в отдельной папке и каждый день записывать отчет с новым именем файла, чтобы была возможность в любой из дней обратиться к логам за предыдущие дни. Причем, имя лог-фала хотелось бы иметь в виде даты работы пакетного файла. Чтобы все это реализовать создадим на диске С (например) папку с именем LOG, т.е. полный путь к ней будет выглядеть C:\LOG. Созданный пакетный файл 1.bat будем запускать следующей командой: 1.bat>C:\LOG\%date~-10%.txt Если пакетный файл будет запускаться из Планировщика, то нужно указать полный путь с bat-файлу. Помните, что если в пути есть пробелы, то надо использовать либо кавычки, либо формат 8.3. Т.е., если путь к bat-файлу C:\Program Files\1.bat, например, то в командной строке Планировщика для запуска bat-файла нужно указать одну из следующих строк: "C:\Program Files\1.bat">C:\LOG\%date~-10%.txt C:\Progra~1\1.bat>C:\LOG\%date~-10%.txt После запуска файла 1.bat в папке C:\LOG будет создан файл с именем, равным дате запуска bat-файла, например, 13.01.2004.txt Это и будет отчет о работе пакетного файла 1.bat. Запуск bat-файла, пример которого показан в первом листинге вверху страницы, указанной выше командой, приведет к созданию лог-файла такого содержания: Start 19:03:27,20 Create test.txt Copy Test.txt to Old_test.txt Скопировано файлов: 1. Stop 19:03:27,21 Таким образом, для выполнения перенаправления результатов работы bat-файла в лог-файл нужно использовать символ перенаправления > Синтаксис таков: Путь\ИмяФайла.bat>Путь\ИмяЛогФайла.txt Расширение лог-файла может быть любым. При желании, отчет о выполнении пакетного задания можно оформить даже в виде страницы html (соответствующие теги могут быть выведены в лог-файл так, как выводились комментарии в примере 1.bat) и скопировать его на корпоративный сервер. |