Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Пакетные файлы (ПФ) могут создаваться с помощью любого текстового редактора либо командой↑ Стр 1 из 3Следующая ⇒ Содержание книги
Поиск на нашем сайте
Лабораторная работа № 2 по дисциплине “Операционные системы, среды и оболочки” Создание пакетных файлов Цель работы: · научиться создавать пакетные файлы для автоматизации выполнения работ в операционной системе.
Командный (или пакетный) файл в Windows — это обычный текстовый файл (в формате ASCII), с расширением bat или cmd, который содержит команды операционной системы, а также некоторые дополнительные инструкции и ключевые слова. Строками пакетного файла также могут быть вызовы исполняемых файлов (.com,.exe,.bat), метки и специальные команды пакетной обработки. Признаком метки является двоеточие в начале строки. Пакетные файлы (ПФ) могут создаваться с помощью любого текстового редактора либо командой COPY CON <имя файла>.BAT Например, если записать в файл deltmp.bat следующие команды: C:\ CD %TEMP% DEL /F *.tmp И запустить его на выполнение (набрать в командной строке deltmp.bat), то удалятся все файлы во временной директории Windows. Таким образом, исполнение командного файла приводит к тому же результату, что и последовательный ввод записанных в нем команд. Очевидно, что если приходится часто выполнять одни и те же действия, то использование командных файлов может сэкономить много времени. Пакетный файл, состоящий из двух команд вызова calc.exe notepad.exe Вызовет стандартный Калькулятор, а при его закрытии вызовет Блокнот. Общие правила оформления пакетных файлов: · для запуска исполняемого файла из пакетного следует просто указать его имя, · следует указывать полный путь доступа к файлам, если файл не содержится в текущем каталоге, · допускается использование подстановочных символов звездочка (*) или вопросительный знак (?) для замены наборов символов, · метка всегда содержится в отдельной строке и начинается с двоеточия, · при запуске каждой программы вырабатывается код ошибки выполнения – переменная errorlevel. В случае отсутствия ошибки errorlevel =0, · существование любого файла можно проверить с помощью операции exist: значение операции exist имя файла равно True, если указанный файл существует. · для прекращения выполнения ПФ необходимо нажать клавиши CTRL+C; · в ПФ можно использовать символы переназначения ввода/вывода и конвейер команд;
При выполнении пакетного файла на экран выводятся все его команды. С помощью команды ECHO OFF можно отключить дублирование команд, идущих после нее. Чтобы отключить вывод одной команды на экран следует поставить перед ней знак @. Для восстановления вывода команд на экран используется команда ECHO ON или команда ECHO. С помощью команды ECHO в пакетном файле можно выводить на экран строки с сообщениями. Команда ECHO. (точка должна следовать непосредственно за словом "ECHO") выводит на экран пустую строку. Например, @ECHO OFF ECHO Привет! ECHO. ECHO Пока! Часто бывает удобно для просмотра сообщений, выводимых из пакетного файла, предварительно полностью очистить экран командой CLS. Используя механизм перенаправления ввода/вывода (символы > и >>), можно направить сообщения, выводимые командой ECHO, в определенный текстовый файл. Например: @ECHO OFFECHO Привет! > hi.txtECHO Пока! >> hi.txtС помощью такого метода можно, скажем, заполнять файлы-протоколы с отчетом о произведенных действиях. Например: @ECHO OFFREM Попытка копированияXCOPY C:\PROGRAMS D:\PROGRAMS /sREM Добавление сообщения в файл report.txt в случаеREM удачного завершения копированияIF NOT ERRORLEVEL 1 ECHO Успешное копирование >> report.txtСимволы условной обработки Символы условной обработки используются для ввода несколько команд одновременно и управления работой команд в зависимости от результатов их выполнения: · Амперсанд (&) разделяет несколько команд в одной командной строке.
Передача данных в командный файл Довольно часто возникает необходимость создать один пакетный файл, но выполнять его каждый раз с различными данными. Возможны два способа передачи данных в пакетный файл: · с помощью списка замещаемых параметров, · с помощью системных переменных. Замещаемые параметры командной строки. При использовании первого способа в тексте пакетного файла используются формальные параметры, имеющие имена %0, %2, …%9. Реальные значения этим параметрам присваиваются с помощью фактических параметров, которые указываются при запуске пакетного файла через пробелы: <имя пакетного файла> <параметр1> <параметр2>.. <параметр9> При выполнении пакетного файла формальный параметр %1 получает значение (замещается) <параметр1>, формальный параметр %2 получает значение <параметр2> и т.д. В формальном параметре %0 хранится имя самого пакетного файла. Если в командной строке при вызове пакетного файла задано меньше девяти параметров, то "лишние" переменные из %1 – %9 замещаются пустыми строками. Например, пусть создан командный файл copier.bat следующего содержания: @ECHO OFFCLSECHO Файл %0 копирует каталог %1 в %2XCOPY %1 %2 /SЕсли запустить его из командной строки с двумя параметрами, например copier.bat C:\Programs D:\BackupТо на экран выведется сообщение Файл copier.bat копирует каталог C:\Programs в D:\Backupи произойдет копирование каталога C:\Programs со всеми его подкаталогами в D:\Backup. Cls Set /P name= “Input your name:” Echo Hello, %name% При выполнении этого пакетного файла на экран будет выведено сообщение Input your name:. Если в ответ ввести Piter, то это будет значением переменной name. Таким образом, результатом работы приведенного пакетного файла будет: Input your name: Piter Hello, Piter Работа с системными переменными В пакетных файлах можно работать с системными переменными, заключая их имена в знак %. Например, @ECHO OFFCLSREM Создание переменной MyVarSET MyVar=ПриветREM Изменение переменнойSET MyVar=%MyVar%!ECHO Значение переменной MyVar: %MyVar% REM Удаление переменной MyVarSET MyVar=ECHO Значение переменной WinDir: %WinDir%При запуске такого командного файла на экран выведется строка Значение переменной MyVar: Привет!Значение переменной WinDir: C:\WINDOWSС переменными среды в командных файлах можно производить некоторые манипуляции. Во-первых, над ними можно производить операцию конкатенации (склеивания). Для этого нужно в команде SET просто написать рядом значения соединяемых переменных. Например, SET A=Раз SET B=Два SET C=%A%%B%После выполнения в файле этих команд значением переменной C будет являться строка 'РазДва'. Не следует для конкатенации использовать знак +, так как он будет воспринят просто в качестве символа. Например, после запуска файл следующего содержания SET A=Раз SET B=Два SET C=A+B ECHO Переменная C=%C% SET D=%A%+%B% ECHO Переменная D=%D%на экран выведутся две строки: Переменная C=A+BПеременная D=Раз+ДваКоманда CALL Назначение: вызывает пакетный файл из другого пакетного файла. Формат: call [< путь доступа к файлу> ] < имя файла > [< параметры >] Параметры: < имя файла > - имя вызываемого ПФ; < параметры >- параметры, передаваемые вызываемому ПФ; Выполнение: по завершении выполнения вызываемого пакетного файла управление возвращается в вызывающий ПФ. Пример: CALL sam.bat - вызов пакетного файла sam.bat из текущего каталога.
Команда PAUSE Используется для приостановки действия пакетного файла. Перед запуском этой команды полезно с помощью команды ECHO информировать пользователя о действиях, которые он должен произвести. Например: ECHO Вставьте дискету в дисковод A: и нажмите любую клавишуPAUSEКоманду PAUSE обязательно нужно использовать при выполнении потенциально опасных действий (удаление файлов, форматирование дисков и т.п.). Например,
Команда GOTO Командный файл может содержать метки и команды GOTO перехода к этим меткам. Любая строка, начинающаяся с двоеточия:, воспринимается при обработке командного файла как метка. Имя метки задается набором символов, следующих за двоеточием до первого пробела или конца строки. Пусть имеется командный файл следующего содержания: @ECHO OFFCOPY %1 %2GOTO Label1ECHO Эта строка никогда не выполнится:Label1REM Продолжение выполненияDIR %2После того, как в этом файле мы доходим до команды GOTO Label1 его выполнение продолжается со строки REM Продолжение выполненияВ команде перехода внутри файла GOTO можно задавать в качестве метки перехода строку:EOF, которая передает управление в конец текущего пакетного файла (это позволяет легко выйти из пакетного файла без определения каких-либо меток в самом его конце). Пример. Если в командном файле заданы строки @ECHO OFFFOR %%i IN (Раз,Два,Три) DO ECHO %%iто в результате его выполнения на экране будет напечатано следующее: РазДваТриПараметр множество в команде FOR задает одну или более текстовых строк, разделенных запятыми, которые вы хотите обработать с помощью заданной команды. Скобки здесь обязательны. Параметр команда [параметры] задает команду, выполняемую для каждого элемента множества, при этом вложенность команд FOR на одной строке не допускается. Если в строке, входящей во множество, используется запятая, то значение этой строки нужно заключить в кавычки. Например, в результате выполнения файла с командами @ECHO OFFFOR %%i IN ("Раз,Два",Три) DO ECHO %%iНа экран будет выведено Раз,ДваТриПараметр %%переменная представляет подставляемую переменную (счетчик цикла), причем здесь могут использоваться только имена переменных, состоящие из одной буквы или цифры. При выполнении команда FOR заменяет подставляемую переменную текстом каждой строки в заданном множестве, пока команда, стоящая после ключевого слова DO, не обработает все такие строки. Чтобы избежать путаницы с параметрами командного файла %0 — %9, для переменных следует использовать любые символы кроме 0 – 9. Параметр множество в команде FOR может также представлять одну или несколько групп файлов. Например, чтобы вывести в файл список всех файлов с расширениями txt и prn, находящихся в каталоге C:\TEXT, без использования команды DIR, можно использовать командный файл следующего содержания: При таком использовании команды FOR процесс обработки продолжается, пока не обработаются все файлы (или группы файлов), указанные во множестве. Цикл FOR /D … IN … DO … Следующий вариант команды FOR реализуется с помощью ключа /D: FOR /D %переменная IN (набор) DO команда [параметры]В случае если набор содержит подстановочные знаки, то команда выполняется для всех подходящих имен каталогов, а не имен файлов. Скажем, выполнив следующий командный файл: @ECHO OFFCLSFOR /D %%f IN (C:\*.*) DO ECHO %%fполучим список всех каталогов на диске C:, например: C:\ArcC:\CYRC:\MSCANC:\NCC:\Program FilesC:\TEMPC:\TeXC:\WINNTЦикл FOR /R … IN … DO … С помощью ключа /R можно задать рекурсию в команде: FOR: FOR /R [[диск:]путь] %переменная IN (набор) DO команда [параметры]В этом случае заданная команда выполняется для каталога [диск:]путь, а также для всех подкаталогов этого пути. Если после ключа R не указано имя каталога, то выполнение команды начинается с текущего каталога. Например, для распечатки всех файлов с расширением txt в текущем каталоге и всех его подкаталогах можно использовать следующий пакетный файл: @ECHO OFFCLSFOR /R %%f IN (*.txt) DO PRINT %%fЕсли вместо набора указана только точка (.), то команда проверяет все подкаталоги текущего каталога. Например, если мы находимся в каталоге C:\TEXT с двумя подкаталогами BOOKS и ARTICLES, то в результате выполнения файла: на экран выведутся три строки:C:\TEXT\.C:\TEXT\BOOKS\.C:\TEXT\ARTICLES\.Цикл FOR /L … IN … DO … Ключ /L позволяет реализовать с помощью команды FOR цикл с известным числом повторений, в этом случае синтаксис имеет следующий: вид: FOR /L %переменная IN (начало, шаг, конец) DO команда [параметры]Здесь заданная после ключевого слова IN тройка (начало,шаг,конец) раскрывается в последовательность чисел с заданными началом, концом и шагом приращения. Так, набор (1,1,5) раскрывается в (1 2 3 4 5), а набор (5,-1,1) заменяется на (5 4 3 2 1). Например, в результате выполнения следующего командного файла: @ECHO OFFCLSFOR /L %%f IN (1,1,5) DO ECHO %%fпеременная цикла %%f пробежит значения от 1 до 5, и на экране напечатаются пять чисел: 12345Числа, получаемые в результате выполнения цикла FOR /L, можно использовать в арифметических вычислениях. Рассмотрим командный файл my.bat следующего содержания: @ECHO OFFCLSFOR /L %%f IN (1,1,5) DO CALL:2 %%fGOTO:EOF:2SET /A M=10*%1ECHO 10*%1=%M%В третьей строке в цикле происходит вызов нового контекста файла my.bat с текущим значением переменной цикла %%f в качестве параметра командной строки, причем управление передается на метку:2 (см. описание CALL в разделе "Изменения в командах перехода"). В шестой строке переменная цикла умножается на десять, и результат записывается в переменную M. Таким образом, в результате выполнения этого файла выведется следующая информация: 10*1=10 10*2=20 10*3=30 10*4=40 10*5=50 Цикл FOR /F … IN … DO … Самые мощные возможности (и одновременно самый запутанный синтаксис) имеет команда: FOR с ключом /F: FOR /F ["ключи"] %переменная IN (набор) DO команда [параметры]Здесь параметр набор содержит имена одного или нескольких файлов, которые по очереди открываются, читаются и обрабатываются. Обработка состоит в чтении файла, разбиении его на отдельные строки текста и выделении из каждой строки заданного числа подстрок. Затем найденная подстрока используется в качестве значения переменной при выполнении основного тела цикла (заданной команды). По умолчанию ключ /F выделяет из каждой строки файла первое слово, очищенное от окружающих его пробелов. Пустые строки в файле пропускаются. Необязательный параметр "ключи" служит для переопределения заданных по умолчанию правил обработки строк. Ключи представляют собой заключенную в кавычки строку, содержащую приведенные в таблице ключевые слова:
При использовании ключа TOKENS=X,Y,M-N создаются дополнительные переменные. Формат M-N представляет собой диапазон подстрок с номерами от M до N. Если последний символ в строке TOKENS= является звездочкой, то создается дополнительная переменная, значением которой будет весь текст, оставшийся в строке после обработки последней подстроки. Разберем применение этой команды на примере пакетного файла parser.bat, который производит разбор файла myfile.txt: @ECHO OFFIF NOT EXIST myfile.txt GOTO:NoFileFOR /F "EOL=; TOKENS=2,3* DELIMS=, " %%i IN (myfile.txt) DO @ECHO %%i %%j %%kGOTO:EOF:NoFileECHO Не найден файл myfile.txt!Здесь во второй строке производится проверка наличия файла myfile.txt; в случае отсутствия этого файла выводится предупреждающее сообщение. Команда FOR в третьей строке обрабатывает файл myfile.txt следующим образом: Пропускаются все строки, которые начинаются с символа точки с запятой (EOL=;). Вторая и третья подстроки из каждой строки передаются в тело цикла, причем подстроки разделяются пробелами (по умолчанию) и/или запятыми (DELIMS=,). В теле цикла переменная %%i используется для второй подстроки, %%j — для третьей, а %%k получает все оставшиеся подстроки после третьей. В нашем примере переменная %%i явно описана в инструкции FOR, а переменные %%j и %%k описываются неявно с помощью ключа TOKENS=. Например, если в файле myfile.txt были записаны следующие три строки: ААА ББББ ВВВВ,ГГГГГ ДДДДЕЕЕЕЕ,ЖЖЖЖ ЗЗЗЗ;КККК ЛЛЛЛЛ МММММто в результате выполнения пакетного файла parser.bat на экран выведется следующее: ББББ ВВВВ ГГГГГ ДДДДЖЖЖЖ ЗЗЗЗЗамечание. Ключ TOKENS= позволяет извлечь из одной строки файла до 26 подстрок, поэтому запрещено использовать имена переменных, начинающиеся не с букв английского алфавита (a–z). Следует помнить, что имена переменных FOR являются глобальными, поэтому одновременно не может быть активно более 26 переменных. Команда FOR /F также позволяет обработать отдельную строку. Для этого следует ввести нужную строку в кавычках вместо набора имен файлов в скобках. Строка будет обработана так, как будто она взята из файла. Например, файл следующего содержания: @ECHO OFFFOR /F "EOL=; TOKENS=2,3* DELIMS=, " %%i IN ("ААА ББББ ВВВВ,ГГГГГ ДДДД") DO @ECHO %%i %%j %%kСодержание работы Задание 1. Анализ пакетного файла · Создайте в режиме командной строки текстовый пакетный файл, который выводит на экран содержимое заданного пользователем текстового файла. Имя файл задается как параметр: @echo off if -%1==- goto no_param if not exist %1 goto not_tex type %1 Goto exit :no_param echo Must be parameter! Goto exit :not_tex echo File %1 is not find! :exit Сохраните файл в своей папке, дав ему имя my_type.bat. · Создайте любой текстовый файл (не более 10 строк), например, с помощью редактора текста, встроенного в Windows Commander (Shift+F4) и сохраните в той же папке. · В режиме командной строки запустите файл my_type.bat, указав имя своего текстового файла через пробел, например my_type.bat myText.txt Отладьте пакетный файл для всех возможных вариантов его выполнения. · Введите комментарии, поясняющие работу команд файла (комментарий начинается со слова Rem с последующим пробелом). Задание 2. Изменение пакетного файла Измените пакетный файл из задания 1: · используйте команду if в виде ЕСЛИ…ТО…ИНАЧЕ и один из операторов сравнения (EQL, NEQ), · имя файла для вывода на экран вводите в диалоге с помощью команды SET с ключом /P и системной переменной, например: Задание 3. Создание пакетного файла Создайте пакетный файл для одного из вариантов из файла с заданиями
Контрольные вопросы
4.1 Отличие ПФ от других исполняемых файлов. 4.2 Способы передачи данных в ПФ. 4.3 Специальные команды ПФ. 4.4 Циклическое исполнение команд в ПФ. 4.5 Организация ветвлений в ПФ.
Лабораторная работа № 2 по дисциплине “Операционные системы, среды и оболочки” Создание пакетных файлов Цель работы: · научиться создавать пакетные файлы для автоматизации выполнения работ в операционной системе.
Командный (или пакетный) файл в Windows — это обычный текстовый файл (в формате ASCII), с расширением bat или cmd, который содержит команды операционной системы, а также некоторые дополнительные инструкции и ключевые слова. Строками пакетного файла также могут быть вызовы исполняемых файлов (.com,.exe,.bat), метки и специальные команды пакетной обработки. Признаком метки является двоеточие в начале строки. Пакетные файлы (ПФ) могут создаваться с помощью любого текстового редактора либо командой COPY CON <имя файла>.BAT Например, если записать в файл deltmp.bat следующие команды: C:\ CD %TEMP% DEL /F *.tmp И запустить его на выполнение (набрать в командной строке deltmp.bat), то удалятся все файлы во временной директории Windows. Таким образом, исполнение командного файла приводит к тому же результату, что и последовательный ввод записанных в нем команд. Очевидно, что если приходится часто выполнять одни и те же действия, то использование командных файлов может сэкономить много времени.
|
|||||||||||||||
Последнее изменение этой страницы: 2016-07-16; просмотров: 1297; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.148.117.240 (0.014 с.) |