Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Пакетные файлы (ПФ) могут создаваться с помощью любого текстового редактора либо командойСодержание книги
Поиск на нашем сайте Лабораторная работа № 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 обязательно нужно использовать при выполнении потенциально опасных действий (удаление файлов, форматирование дисков и т.п.). Например, ECHO Сейчас будут удалены все файлы в C:\Мои документы!ECHO Для отмены нажмите Ctrl-CPAUSEDEL "C:\Мои документы\*.*"
Команда 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, можно использовать командный файл следующего содержания: @ECHO OFFFOR %%f IN (C:\TEXT\*.txt, C:\TEXT\*.prn) DO ECHO %%f >> list.txtПри таком использовании команды 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; просмотров: 1629; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.01 с.) |