Использование параметров командной строки
Стр 1 из 3Следующая ⇒ Интерпретатор командной строки ОС MS Windows Часть 2. Язык интерпретатора и командные файлы Цель работы – знакомство с языком интерпретатора командной строки ОС MS Windows и командными файлами 1. КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ Язык интерпретатора Cmd.exe. Командные файлы Язык оболочки командной строки (shell language) в Windows реализован в виде командных (или пакетных) файлов. Командный файл в Windows — это обычный текстовый файл с расширением bat или cmd, в котором записаны допустимые команды ОС (как внешние, так и внутренние), а также некоторые дополнительные инструкции и ключевые слова, придающие командным файлам некоторое сходство с программами, написанными на языке программирования. Например, если записать в файл deltmp.bat следующие команды: C:\CD %TEMP%DEL /F *.tmpи запустить его на выполнение (аналогично исполняемым файлам с расширением com или exe), то мы удалим все файлы во временной директории Windows. Таким образом, исполнение командного файла приводит к тому же результату, что и последовательный ввод записанных в нем команд. При этом не проводится никакой предварительной компиляции или проверки синтаксиса кода; если встречается строка с ошибочной командой, то она игнорируется. Очевидно, что если приходится часто выполнять одни и те же действия, то использование командных файлов может сэкономить много времени. Вывод сообщений и дублирование команд По умолчанию команды пакетного файла перед исполнением выводятся на экран, что выглядит не очень эстетично. С помощью команды ECHO OFF можно отключить дублирование команд, идущих после нее (сама команда ECHO OFF при этом все же дублируется). Например, REM Следующие две команды будут дублироваться на экране …:: эта строка – такой же комментарий, как и предыдущая DIR C:\ECHO OFF:: А остальные уже не будутDIR D:\Для восстановления режима дублирования используется команда ECHO ON. Кроме этого, можно отключить дублирование любой отдельной строки в командном файле, написав в начале этой строки символ @, например:
Таким образом, если поставить в самое начало файла команду @ECHO OFFто это решит все проблемы с дублированием команд. В пакетном файле можно выводить на экран строки с сообщениями. Делается это с помощью команды ECHO сообщениеНапример, @ECHO OFFECHO Привет!Команда ECHO. (точка должна следовать непосредственно за словом "ECHO") выводит на экран пустую строку. Например,@ECHO OFFECHO Привет!ECHO.ECHO Пока!Часто бывает удобно для просмотра сообщений, выводимых из пакетного файла, предварительно полностью очистить экран командой CLS. Используя механизм перенаправления ввода/вывода (символы > и >>), можно направить сообщения, выводимые командой ECHO, в определенный текстовый файл. Например: @ECHO OFFECHO Привет! > hi.txtECHO Пока! >> hi.txtС помощью такого метода можно, скажем, заполнять файлы-протоколы с отчетом о произведенных действиях. Например:@ECHO OFFREM Попытка копированияXCOPY C:\PROGRAMS D:\PROGRAMS /s:: Добавление сообщения в файл report.txt в случае удачного завершения копированияIF NOT ERRORLEVEL 1 ECHO Успешное копирование >> report.txtИспользование параметров командной строки При запуске пакетных файлов в командной строке можно указывать произвольное число параметров, значения которых можно использовать внутри файла. Это позволяет, например, применять один и тот же командный файл для выполнения команд с различными параметрами. Для доступа из командного файла к параметрам командной строки применяются символы %0, %1, …, %9 или %*. При этом вместо %0 подставляется имя выполняемого пакетного файла, вместо %1, %2, …, %9 — значения первых девяти параметров командной строки соответственно, а вместо %* — все аргументы. Если в командной строке при вызове пакетного файла задано меньше девяти параметров, то "лишние" переменные из %1 – %9 замещаются пустыми строками. Рассмотрим следующий пример. Пусть имеется командный файл copier.bat следующего содержания:
Если запустить его из командной строки с двумя параметрами, например copier.bat C:\Programs D:\Backupто на экран выведется сообщение Файл copier.bat копирует каталог C:\Programs в D:\Backupи произойдет копирование каталога C:\Programs со всеми его подкаталогами в D:\Backup. При необходимости можно использовать более девяти параметров командной строки. Это достигается с помощью команды SHIFT, которая изменяет значения замещаемых параметров с %0 по %9, копируя каждый параметр в предыдущий, то есть значение %1 копируется в %0, значение %2 – в %1 и т.д. Замещаемому параметру %9 присваивается значение параметра, следующего в командной строке за старым значением %9. Если же такой параметр не задан, то новое значение %9 — пустая строка. Пример 1. Пусть командный файл my.bat вызван из командной строки следующим образом: my.bat p1 p2 p3Тогда %0=my.bat, %1=p1, %2=p2, %3=p3, параметры %4 – %9 являются пустыми строками. После выполнения команды SHIFT значения замещаемых параметров изменятся следующим образом: %0=p1, %1=p2, %2=p3, параметры %3 – %9 – пустые строки. При включении расширенной обработки команд SHIFT поддерживает ключ /n, задающий начало сдвига параметров с номера n, где n может быть числом от 0 до 9. Например, в следующей команде SHIFT /2 параметр %2 заменяется на %3, %3 на %4 и т.д., а параметры %0 и %1 остаются без изменений. Команда, обратная SHIFT (обратный сдвиг), отсутствует. После выполнения SHIFT уже нельзя восстановить параметр (%0), который был первым перед сдвигом. Если в командной строке задано больше десяти параметров, то команду SHIFT можно использовать несколько раз. В командных файлах имеются некоторые возможности синтаксического анализа заменяемых параметров. Для параметра с номером n (%n) допустимы синтаксические конструкции (операторы), представленные в табл. 1.
Данные синтаксические конструкции можно объединять друг с другом, например:
%~DPn — из переменной %n выделяется имя диска и путь, %~NXn — из переменной %n выделяется имя файла и расширение. Пример 2. Пусть мы находимся в каталоге C:\TEXT и запускаем пакетный файл с параметром Рассказ.doc (%1=Рассказ.doc). Размер файла 2150 байт, дата создания 12.12.2009, время -12:55. Тогда применение операторов, описанных в табл. 1, к параметру %1 даст следующие результаты: %~F1=C:\TEXT\Рассказ.doc%~D1=C:%~P1=\TEXT\%~N1=Рассказ%~X1=.doc%~DP1=C:\TEXT\%~NX1=Рассказ.doc%~T1=12.12.2009 12:55%~Z1=2150
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|