Ф АЙЛЫ ПАКЕТНОЙ ОБРАБОТКИ
П ОНЯТИЕ ПАКЕТНОГО ФАЙЛА Пакетный файл (англ. batch file) текстовый файл в MS-DOS или Windows, содержащий последовательность команд, предназначенных для исполнения командным интерпретатором. После запуска пакетного файла, программа интерпретатор (как правило COMMAND.COM или CMD.EXE) читает его строка за строкой и последовательно исполняет команды. Пакетный файл аналог shell script в Unix-подобных операционных системах..WindowsCOMMAND.COMCMD.EXEshell scriptUnix-подобных операционных системах Пакетные файлы полезны для автоматического запуска приложений. Основная область применения автоматизация наиболее рутинных операций, что регулярно приходится совершать пользователю компьютера. Примерами таких операций могут служить обработка текстовых файлов; копирование, перемещение, переименование, удаление файлов; работа с папками; архивация; создание резервных копий баз данных и т. п. Пакетные файлы поддерживают операторы if и goto (а в системах семейства Windows NT и расширенный оператор for), что позволяет обрабатывать результаты выполнения предыдущих команд или приложений и в зависимости от этого выполнять дальше тот или иной блок команд (как правило, в случае удачного завершения приложение возвращает 0 в переменной errorlevel ; в случае неудачного 1 или большее значение).ifgotoWindows NTfor Пакетные файлы в DOS имеют расширение.bat; для других операционных систем они могут иметь другие расширения например,.CMD в Windows NTDOS Пакетные файлы могут содержать как внутренние команды, обрабатываемые непосредственно COMMAND.COM или CMD.EXE, так и обращения к внешним утилитам, существующим в виде отдельных программ (.EXE файлов). Данные программы значительно расширяют возможности пакетных файлов
И СТОРИЯ Программирование пакетных файлов появилось в MS-DOS и Windows с самого зарождения этих операционных систем. Командные интерпретаторы этих систем предлагают два режима работы: интерактивный режим (когда пользователь непосредственно вводит команды в командной строке и немедленно их исполняет) и пакетный режим (когда пользователь запускает предварительно записанную последовательность команд). Концепция обоих режимов была почерпнута из различных Unixоболочек, равно как и из других текстовых интерфейсов командной строки начала 1980-х годов, таких как CP/M.Unix CP/M Коммандный интерпретатор в MS-DOS имеет название COMMAND.COM. Эволюция этой ветви пакетного программирования прошла через различные версии MS-DOS к Windows 95, Windows 98 и, наконец, к Windows Me. Наиболее известным пакетным файлом в этих системах является AUTOEXEC.BAT, специальный пакетный файл, который исполняется во время загрузки операционной системы.Windows 95Windows 98Windows MeAUTOEXEC.BAT Новые версии Windows Windows 2000, Windows XP и Windows Vista основаны не на MS-DOS, а на Windows NT. NT- подобные системы включают интерпретатор cmd.exe, который частично совместим с COMMAND.COM. Некоторые старые возможности MS-DOS недоступны, однако вместо них появились дополнительные возможности и команды. COMMAND.COM до сих пор включается в NT-подобные системы для обеспечения лучшей обратной совместимости.Windows 2000Windows XPWindows VistaWindows NTcmd.exe Существуют различные другие командные интерпретаторы, разработанные не компанией Microsoft и предоставляющие расширенный синтаксис команд для пакетного программирования. Примером может служить 4DOS.Microsoft4DOS Также имеются различные компиляторы пакетных файлов, превращающие пакетные файлы в исполняемые программы.
Расширение BAT получилось от слова Batch(пакет). Так как эти файлы обычные ASCII файлы, то Вы можете их править в любом текстовом редакторе, например NotePad. Сохранять файл необходимо с расширением bat Контекстное меню Windows предусматривает специальный пункт меню для редактирования этих файлов. При выборе этого пункта откроется блокнот и сможете изменять файл. Р ЕДАКТИРОВАНИЕ BAT ФАЙЛОВ
Специальных команд, которые используются в BAT файлах не много. Именно специальных, которые могут пригодиться при создании логики командного файла. Конечно, эти команды относятся к внутренним командам MS DOS и могут использоваться в командной строке, но все-таки эти команды обретают смысл только в пакетных файлах. call Вызов одного пакетного файла из другого. echo Вывод сообщений и переключение режима отображения команд на экране. for Запуск указанной команды для каждого из файлов в наборе. goto Передача управления в отмеченную строку пакетного файла. if Оператор условного выполнения команд в пакетном файле. pause Приостановка выполнения пакетного файла и вывод сообщения rem Помещение комментариев в пакетные файлы и файл CONFIG.SYS. shift Изменение содержимого (сдвиг) подставляемых параметров для пакетного файла. Кстати Вы можете легко получить подсказку по каждой этой команде в сеансе MS DOS используя ключ /? К ОМАНДЫ BAT ФАЙЛОВ
К ОПИРОВАНИЕ ФАЙЛОВ Рассмотрим такой пример. Вы постоянно работаете с тремя файлами, которые находятся в разных каталогах жесткого диска, и часто создаете их резервные копии на USB-flash-drive. Для этого потребуется заходить в каждый каталог и копировать файлы по отдельности на флэшку. Если написать простенький пакетный файл, то перечисленные действия сведутся к его запуску. Предположим, что полные пути и имена файлов таковы: D:\Work\Profits.xls, D:\Home\Home.doc и C:\MyDocs\Oplata.doc, а G:\ – съемный флэш-диск для резервной копии. Тогда нужный пакетный файл будет выглядеть так: copy D:\Work\Profits.xls G:\Backup\ copy D:\Home\Home.doc G:\Backup\ copy C:\MyDocs\Oplata.doc G:\Backup\ pause ЗАДАНИЕ 1. 1.На диске D: создайте папку Home в ней семь папок : Zadanue1… Zadanue7 2.В папку Home скопируйте два любых файла с расширением doc, дайте им имена 11.doc, 12.doc 3.Выполняйте в папке Zadanue1. Создайте bat – файл и сохраните его под именем 1.bat. Команды файла должны копировать файлы 11.doc, 12.doc из папки Home в папку Zadanue1.
У ДАЛЕНИЕ ФАЙЛОВ Рассмотрим следующий пример. Многие пользователи иногда очищают содержимое временных каталогов. Для этого необходимо перейти в соответствующую папку (их может быть и две), выделить содержимое и удалить. После написания bat-файла очистка временных каталогов выполняется запуском файла с Рабочего стола. Итак, содержимое файла: del /F /S /Q %temp% del /F /S /Q %tmp% pause ЗАДАНИЕ 2. 1.Выполняйте в папке Zadanue2. Скопируйте из папки Zadanue1 в папку Zadanue2 файлы 11.doc, 12.doc 2.Создайте bat – файл и сохраните его под именем 2.bat. Команды файла должны удалять файла из папки Zadanue2.
В ЫВОД СООБЩЕНИЙ В BAT ФАЙЛАХ Для вывода сообщения в BAT файлах используется команда echo: Вывод сообщений и переключение режима отображения команд на экране. ECHO [ON | OFF] ECHO [сообщение] Ввод ECHO без параметров позволяет выяснить текущий режим отображения команд. ЗАДАНИЕ 3. 1.Выполняйте в папке Zadanue3. Создайте файл под именем 3.bat. Запишите в него следующие команды echo echo hello batch files Запускаем. 2. Как видите, режим Echo включен по умолчанию. В итоге отображается и команда и результат. Давайте его выключим. echo off echo hello batch files Запускаем. 3. Но первая команда все равно видна. Это можно исправить, сразу вызвав CLS(команда очистки экрана) после отключения режима отображения. CLS это внутренняя команда MS DOS и может вызываться прямо из командной строки. echo off cls echo hello batch files Запускаем.
С ОЗДАНИЕ ПРОГРАММ В BAT файлах можно использовать любые команды MS DOS. Смысл нашей программы будет в том, чтобы она создала папку и скопировала туда содержимое текущей папки. Пишем: В BAT файлах можно использовать любые команды MS DOS. Смысл нашей программы будет в том, чтобы она создала папку и скопировала туда содержимое текущей папки. ПРИМЕР: echo off cls echo start backup mkdir backup copy *.* backup echo end backup ЗАДАНИЕ 3. Задание выполняйте в папке Zadanie4 Сохраните файл под именем 4.bat 1.С помощью команд создайте в папке Zadanie4 папку QQQ 2.Скопируйте в нее файлы из папки Zadanie1
В ЫЗОВ ОДНОГО BAT ФАЙЛА ИЗ ДРУГОГО Здесь нам может помочь команда CALL: CALL [диск:][путь]имя_файла [параметры_вызова] параметры_вызова Параметры командной строки, использующиеся при вызове пакетного файла. ЗАДАНИЕ 5. Выполняйте в папке Zadanue5. Сохраните файл под именем 5.bat: 1.Команда находящаяся в файле будет вызывать файл 4. bat из папки Zadanue4 на выполнение Запускаем и смотрим.
О БРАБОТКА ПАРАМЕТРОВ В BAT ФАЙЛЕ Вызывая из командной строки bat файл: или из другого файла: call 6.bat ЗАДАНИЕ 6. Выполняйте в папке Zadanue6. 1.Создайте файл с именем general.bat в папке Zadanue6. Запишите в нем вызов файла call 6.bat Создайте новый фал. Сохраните файл под именем 6.bat Внутри этого BAT файла можно обработать параметры. Для получения параметра мы должны использовать символ % и номер параметра. MS DOS заменит эту конструкцию переданным параметром. echo off сls echo start backup mkdir %1 copy *.* %1 echo end backup Запускаем файл general.bat 3. Измените в фале general.bat параметр на Запускаем файл general.bat И результат.
И СПОЛЬЗОВАНИЕ PAUSE Pause позволяет остановить выполнение Bat-файла до нажатия клавиши на клавиатуре. Это может быть полезно, например, если Вы хотите, чтобы пользователь подтвердил выполнение какого-то действия нажатием на клавишу. Приостановка выполнения пакетного файла и вывод сообщения: Нажмите любую клавишу.... PAUSE ЗАДАНИЕ 7. Выполняйте в папке Zadanue7. Сохраните файл под именем 7.bat Смотрим пример, который копирует файл на дискету. echo off cls echo insert disk to A: pause copy 1.txt a: В момент выполнения программа остановится. после нажатия скопируется. Но на экране останется окно. Если Вы не хотите чтобы оно было, напишите последней командой cls..... copy 1.txt a: cls И после копирования оно пропадет.
В ЫКЛЮЧЕНИЕ ПК Выполните только конспект: Хотите выключать компьютер одним кликом. Тогда создадим пакетный файл (создаваемый файл предназначен для ОС Windows XP). Для этого запустите программу Блокнот (%SystemRoot%\system32\notepad.exe). Самый быстрый способ запуска - щелкните по свободной от значков поверхности Рабочего Стола. Из открывшегося контекстного меню выберите Создать - Текстовый документ. На Рабочем Столе будет создан текстовый документ. Задайте ему название по своему вкусу, но лучше интуитивно понятное, например, Выключение (или Shutdown). Теперь откройте файл и скопируйте из текста этой статьи следующую строку: shutdown.exe -s -f -t 00 [здесь: shutdown.exe - запуск утилиты "Удаленное завершение работы Windows"; -s - завершение работы ПК (shutdown); -f - принудительное завершение приложений без предварительного предупреждения; -t 00 - таймаут завершения работы (00 сек., т.е. мгновенно)] Вставьте эту строку в файл. Сохраните файл и закройте его. Теперь, чтобы текстовый документ стал пакетным файлом, нам нужно поменять расширение файла с.txt на.bat. Если расширение файлов у вас не отображается, нужно запустить Проводник Windows, открыв любую папку, например, щелкнув по значку Мой компьютер. Выберите меню Сервис - Свойства папки… В открывшемся диалоговом окне Свойства папки откройте вкладку Вид. В прокручиваемом списке Дополнительные параметры снимите флажок со строки Скрывать расширения для зарегистрированных типов файлов. Нажмите OK. Найдите на Рабочем Столе созданный нами файл. Теперь в его названии отображается расширение.txt. Переименуйте файл Выключение.txt в Выключение.bat. При этом появится предупреждение системы: "После смены расширения имени файла этот файл может оказаться недоступным. Вы действительно хотите изменить расширение? Да/Нет". Санкционируйте смену расширения, нажав Да. Изменится вид значка файла и расширение. Далее, для удобства пользования, переместите созданный нами файл (или ярлык от него) на панель Быстрого запуска. Установите обратно флажок Скрывать расширения для зарегистрированных типов файлов (Мой компьютер - Сервис - Свойства папки… - Вид - Дополнительные параметры): это нужно для того, чтобы у Вас не было неудобств с переименованием файлов. Теперь Вы можете выключать ПК одним кликом мыши по значку файла Выключение.bat. При этом можно не закрывать открытые файлы и приложения: они будут закрыты принудительно (поэтому изменения, внесенные в файлы, желательно предварительно сохранить!). Такой же bat-файл можно создать для перезагрузки ПК. При этом команда должна быть следующего вида: shutdown.exe -r -f -t 00 [здесь: -r - перезагрузка ПК (reboot)]