Пример написания командного файла
Создание командных файлов
Цель урока: освоение основ создания командных файлов Windows
О командных файлах Windows
Командные файлы (или файлы сценариев) Windows предназначены для того, что бы автоматизировать выполняемые пользователем действия. Командные файлы представляют собой обычные текстовые файлы с расширением «.cmd» или «.bat» (расширение «.bat» считается устаревшим и используется только для совместимости с ОС MS-DOS), в которых содержится набор команд командной строки Windows. Каждая команда в командном файле записывается на отдельной строке. Во время выполнения командного файла, ОС последовательно выполняет каждую из команд файла, аналогично тому, если бы эти команды вводились пользователем вручную в самой командной строке.
Пример написания командного файла
Допустим, перед нами стоит следующая задача. Необходимо создать на флеш-диске (путь он будет обозначен буквой «G:») папку «DOCS», скопировать в нее все файлы с расширением «.DOC» и «.TXT» из своей папки (к примеру, из папки «D:\STUDENT\1_KURS\1_IS\ALEX»), а так же удалить в своей папке все файлы с расширением «.BAK».
Что бы решить такую задачу средствами командной строки, нужно последовательно набрать и выполнить следующие команды:
MD G:\DOCS
D:
CD \STUDENT\1_KURS\1_IS\ALEX
COPY *.DOC G:\DOCS\
COPY *.TXT G:\DOCS\
DEL *.BAK
Если подобную задачу нужно выполнять не один раз, а регулярно, то будет крайне не рационально каждый раз набирать все эти команды заново. Этот процесс можно автоматизировать, создав командный файл. Для этого необходимо приведенный выше список команд сохранить в файл с расширением «.cmd», например, в файл «test.cmd».
Что бы запустить командный файл на выполнение, достаточно дважды щелкнуть по нему мышью в Проводнике (аналогично запуску программы). Так же можно произвести его запуск и из командной строки, набрав его имя (и полный путь, если он лежит не в текущей папке).
Можно видеть, что выполнение командного файла аналогично вводу команд вручную. Даже все выполняемые команды выводятся в консольном окне так, как будто бы они были введены с клавиатуры.
Однако, это не совсем удобно, так как на экране появляется много информации, которая в принципе и не нужна пользователю.
Для того, что бы нужная нам команда не дублировалась на экране, необходимо перед командой поставить знак «@», например:
@ MD G:\DOCS
В этом случае команда будет выполнена, но сама команда не будет выведена в консольное окно.
Для того, что бы отключить дублирование всех команд командного файла на экране, можно воспользоваться командой «ECHO OFF». После того, как будет выполнена данная команда, дублирование всех команд на экран консоли прекратится.
Так же для того, что бы избавить пользователя от лишней информации, можно воспользоваться командой «CLS», очищающей консольное окно.
Можно заметить, что при запуске командного файла из Проводника, консольное окно закрывается сразу, как только командный файл закончит свое выполнение. Если необходимо, что бы пользователь мог увидеть результаты работы, можно воспользоваться командой «PAUSE», которая ожидает нажатие любой клавиши прежде, чем выполнение перейдет к следующей команде.
Учитывая все вышесказанное, можно переписать наш файл «test.cmd» следующим образом:
ECHO OFF
CLS
MD G:\DOCS
D:
CD \STUDENT\1_KURS\1_IS\ALEX
COPY *.DOC G:\DOCS\
COPY *.TXT G:\DOCS\
DEL *.BAK
PAUSE
Запустим его на выполнение из командной строки и посмотрим на результат.
Для того, что бы во время выполнения командного файла, пользователь мог видеть, что же делает данный файл, можно выводить произвольные сообщения прямо в консольное окно. Для этого нужно использовать команду «ECHO» с параметром. На экран будет выведена подсказка, которая указана в параметре.
Также можно вывести в консольное окно пустую строку, для чего нужно ввести команду «ECHO.», т.е. команда «ECHO» с точкой на конце.
Например, дополним наш файл «test.cmd» следующим образом:
ECHO OFF
CLS
ECHO Копируем файлы *.DOC и *.TXT на флешку, удаляем файлы *.BAK
ECHO.
MD G:\DOCS
D:
CD \STUDENT\1_KURS\1_IS\ALEX
COPY *.DOC G:\DOCS\
COPY *.TXT G:\DOCS\
DEL *.BAK
PAUSE
Запустим этот командный файл на выполнение и посмотрим на результат:
Видно, что латинские буквы и символы выводятся нормально, а русские – нет. Здесь всё дело в проблеме с кодировками. В консольном режиме используется устаревшая кодовая таблица 866, а Блокнот сохраняет текст в кодировке 1251.
Проблему можно решить, если составлять командные файлы не в Блокноте, а в текстовом редакторе, способном сохранять текст в кодировке 866. Такое есть, например, в файловом менеджере Far.
В противном случае придётся отказаться от вывода подсказок на русском языке, взамен чего можно использовать транслитерацию (русские слова латинскими буквами).
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|