ОС Лаб.работа №5 (1069344), страница 7
Текст из файла (страница 7)
Следует помнить, чтоимена переменных FOR являются глобальными, поэтому одновременно неможет быть активно более 26 переменных.Команда FOR /F также позволяет обработать отдельную строку. Дляэтого следует ввести нужную строку в кавычках вместо набора имен файлов вскобках. Строка будет обработана так, как будто она взята из файла.Например, файл следующего содержания:@ECHO OFFFOR /F "EOL=; TOKENS=2,3* DELIMS=, " %%i IN("ААА ББББ ВВВВ,ГГГГГ ДДДД") DO @ECHO %%i %%j %%kОперационные системы. Лаб.работа №5 (ОС Windows.
Командная строка CMD.Командные файлы)44при своем выполнении напечатаетББББ ВВВВ ГГГГГ ДДДДВместо явного задания строки для разбора можно пользоватьсяпеременными среды, например:@ECHO OFFSET M=ААА ББББ ВВВВ,ГГГГГ ДДДДFOR /F "EOL=; TOKENS=2,3* DELIMS=," %%i IN ("%M%") DO @ECHO %%i %%j %%kНаконец, команда FOR /F позволяет обработать строку вывода другойкоманды.
Для этого следует вместо набора имен файлов в скобках ввестистроку вызова команды в апострофах (не в кавычках!). Строка передается длявыполнения интерпретатору команд cmd.exe, а вывод этой командызаписывается в память и обрабатывается так, как будто строка вывода взята изфайла. Например, следующий командный файл:@ECHO OFFCLSECHO Имена переменных среды:ECHO.FOR /F "DELIMS==" %%i IN ('SET') DO ECHO %%iвыведет перечень имен всех переменных среды, определенных в настоящеевремя в системе.В цикле FOR допускается применение тех же синтаксическихконструкций (операторов), что и для заменяемых параметров (табл.
5).Таблица 5. Операторы для переменных команды FORОператоры Описание%~FiПеременная %i расширяется до полного имени файла%~DiИз переменной %i выделяется только имя диска%~PiИз переменной %i выделяется только путь к файлу%~NiИз переменной %i выделяется только имя файлаОперационные системы.
Лаб.работа №5 (ОС Windows. Командная строка CMD.Командные файлы)%~XiИз переменной %i выделяется расширение имени файла%~SiЗначение операторов N и X для переменной %i изменяется45так, что они работают с кратким именем файлаЕсли планируется использовать расширения подстановки значений вкоманде FOR, то следует внимательно подбирать имена переменных, чтобыони не пересекались с обозначениями формата.Например, если мы находимся в каталоге C:\Program Files\Far изапустим командный файл следующего содержания:@ECHO OFFCLSFOR %%i IN (*.txt) DO ECHO %%~Fiто на экран выведутся полные имена всех файловс расширением txt:C:\Program Files\Far\Contacts.txtC:\Program Files\Far\FarFAQ.txtC:\Program Files\Far\Far_Site.txtC:\Program Files\Far\License.txtC:\Program Files\Far\License.xUSSR.txtC:\Program Files\Far\ReadMe.txtC:\Program Files\Far\register.txtC:\Program Files\Far\WhatsNew.txt2.13.6 Циклы и связывание времени выполнения для переменныхКак и в рассмотренном выше примере с составными выражениями, приобработкепеременныхсредывнутрицикламогутвозникатьтруднообъяснимые ошибки, связанные с ранними связыванием переменных.Рассмотрим пример.
Пусть имеется командный файл следующего содержания:SET a=FOR %%i IN (Раз,Два,Три) DO SET a=%a%%%iОперационные системы. Лаб.работа №5 (ОС Windows. Командная строка CMD.Командные файлы)46ECHO a=%a%В результате его выполнения на экран будет выведена строка "a=Три",то есть фактически командаFOR %%i IN (Раз,Два,Три) DO SET a=%a%%%iравносильна командеFOR %%i IN (Раз,Два,Три) DO SET a=%%iДля исправления ситуации нужно, как и в случае с составнымивыражениями, вместо знаков процента ( % ) использовать восклицательныезнаки и предварительно включить режим связывания времени выполнениякомандой SETLOCAL ENABLEDELAYEDEXPANSION.
Таким образом,наш пример следует переписать следующим образом:SETLOCAL ENABLEDELAYEDEXPANSIONSET a=FOR %%i IN (Раз,Два,Три) DO SET a=!a!%%iECHO a=%a%В этом случае на экран будет выведена строка "a=РазДваТри".3 Задание на выполнение работы1. Войти в систему под учётной записью StudXX, где ХХ - индекс группы.Запустить виртуальную машину Oracle VM VirtualBox. Запуститьгостевую операционную систему Windows XP.2. Запустить командный интерпретатор cmdИнтерфейс командной строки в операционных системах Windowsреализован с помощью командного интерпретатора cmd.exe.
Интерпретаторпозволяет последовательно вводить команды в интерактивном режиме иотображать результаты их выполнения. Закрепить окно командной строки на панели задачПуск - Все программы Стандартные Командная строкаЩёлкнуть правой клавишей мыши на команде – выбрать «Закрепить напанели задач»Операционные системы.
Лаб.работа №5 (ОС Windows. Командная строка CMD.Командные файлы)47 Запустить командную строку с правами администратора Щёлкнуть правой клавишей мыши на значке командной строки в панелизадач Щёлкнуть правой клавишей мыши на пункте «Командная строка» Выбрать пункт «Запуск от имени администратора»3. Сделать текущим корневой каталог диска С:4. Просмотреть содержимое корневого каталога, и, если в нём нет каталогаLabOS, то создать его5. Из корневого каталога диска C: перейти в каталог LabOS6.
В каталоге LabOS создать каталог ИУ5-ХХ(заменить ХХ на индексгруппы)7. В каталоге ИУ5-ХХ создать каталог Work1 и подчиненный ему каталогDOC1.8. В каталоге ИУ5-ХХ создать каталог Work2 и подчиненный ему каталогDOC29. В каталоге DOC1 создать файлы:- группа.txt, содержащий индекс группы,- дисциплина.txt, содержащий текст «операционные системы»- студент.txt, содержащий фамилию, имя, отчество студента10.В каталоге Work1 создать командный файл run.bat, , выполняющийследующие операции:- просмотр оглавления каталога DOC1- просмотр содержимого файлов группа.txt, дисциплина.txt, студент.txt,- создание каталога Tools11.Запустить данный командный файл на исполнение.12. Перенести файл run.bat в каталог Tools13.Склеить файлы группа.txt, дисциплина.txt, студент.txt, в файл анкета.txt.14.Поместить файл анкета.txt.
в каталог DOC2Операционные системы. Лаб.работа №5 (ОС Windows. Командная строка CMD.Командные файлы)4815.Написать командный файл Просмотр.bat, который выводит на экрансодержимое файла. Имя выводимого файла должно задаваться в параметрекомандного файла. Перед выводом содержимого файла необходимонапечатать заголовок, содержащий имя выводимого файла, текущуюдату и время.Примечание: Команды для выдачи даты и времени date /T и time /T16.С помощью командного файла Просмотр.bat вывести на экрансодержимое файла анкета.txt4 Контрольные вопросы1. В чём различие внутренних и внешних команд Windows2.
Как вызываются команды в командной строке?3. Как можно получить справку по команде?4. В чём суть конвейерного выполнения команд?5. Что такое командный файл?6. Как используются параметры командных файлов?7. Объясните назначение переменных среды и правила их использования.8. Как можно приостановить выполнение командного файла?5 ЛИТЕРАТУРА1.
. В. Гордеев, Операционные системы: Учебник для вузов. 2-е изданиеСПб.: «Питер», 2007. – 416 с.: ил.2. Книттель Б., Windows 7. Скрипты, автоматизация и командная строка. –СПб.: Питер, 2012 – 784 с. : ил..