- Лабораторная работа № 1
- Управление ос ms Windows с помощью командной строки
- Лабораторная работа 1 интерпретатор командной строки ос ms windows ответы
- 1.1 Язык интерпретатора Cmd.exe. Командные файлы
- 1.1.1 Параметры командной строки. Команда shift
- 1.1.2 Функции анализа имен файлов
- 1.1.3. Переменные среды. Оператор присваивания SET. Получение значений переменных
- 1.1.8. Прерывание и приостановка выполнения командных файлов
- 1.1.9. Вызов внешних командных файлов. Оператор CALL
- 1.1.11. Оператор перехода GOTO
- 1.1.12. Оператор проверки условия IF
Лабораторная работа № 1
Управление ос ms Windows с помощью командной строки
Цель работы – знакомство с возможностями интерпретатора командной строки и командами MS Windows, приобретение навыков работы со справочной системой командного процессора cmd, знакомство с командными файлами ОС MS Windows, приобретение навыков разработки и отладки сценариев MS Windows
Запустить интерпретатор командной строки
Увеличить размер окна интерпретатора и задать цвет фона и цвет шрифта (рекомендуется синий фон и белый шрифт).
Без использования текстового редактор а создать список из 4-5 слов (например, фамилий), используя пример 1. Отсортировать список в алфавитном порядке и сохранить его в новом файле.
C:\Users\student>Copy Con my.txt
Скопировано файлов: 1.
C:\Users\student>Sort my.txt > myout.txt
Создать один текстовый файл, содержащий справочные сведения по командам DIR, COPY, XCOPY и TASKLIST.
C:\Users\student>Copy Con com.txt
DIR [диск:][путь][имя_файла] [ключи]
Параметр [диск:][путь] задает диск и каталог, содержимое которого нужно вывести на экран.
Параметр [имя_файла] задает файл или группу файлов, которые нужно включить в список.
С помощью ключа /A[[:]атрибуты] можно вывести имена только тех каталогов и файлов, которые имеют за
данные атрибуты (R — «Только чтение», A — «Архивный», S — «Системный», H — «Скрытый», префикс «-» им
еет значение НЕ).
Например DIR C:\ /A:HS
Ключ /O[[:]сортировка] задает порядок сортировки содержимого каталога при выводе его командой DIR. Е
сли этот ключ опущен, DIR печатает имена файлов и каталогов в том порядке, в котором они содержатся
в каталоге. Если ключ /O задан, а параметр сортировка
Ключ /S задает вывод списка файлов из заданного каталога и его подкаталогов.
Для копирования одного или нескольких файлов используется команда COPY.
COPY [/A|/B] источник [/A|/B] [+ источник [/A|/B] [+ . ]]
Описание параметров и ключей команды COPY можно получить, используя ключ /?
Примеры использования команды COPY.
1. Копирование файла abc.txt из текущего каталога в каталог D:\PROGRAM под тем же именем: CO
PY abc.txt D:\PROGRAM
2. Копирование файла abc.txt из текущего каталога в каталог D:\PROGRAM под новым именем def.txt
: COPY abc.txt D:\PROGRAM\def.txt
3. Копирование всех файлов с расширением txt с диска A: в каталог ‘Мои документы’ на диске C:
COPY A:\*.txt «C:\Мои документы»
Если не задать в команде целевой файл, то команда COPY создаст копию файла-источника с тем же именем
, датой и временем создания, что и исходный файл, и поместит новую копию в текущий каталог на текуще
Пример 1 создания нового текстового файла и записи в него информации без использования текстового ре
Для решения задачи необходимо ввести команду COPY CON my.txt, которая будет копировать то, что наби
рается на клавиатуре в файл my.txt (если этот файл существовал, то он перезапишется, иначе — создаст
ся). Для завершения ввода необходимо ввести символ кон
Команда COPY может также объединять (склеивать) несколько файлов в один. Для этого необходимо указат
ь единственный результирующий файл и несколько исходных. Это достигается путем использования группов
ых знаков (? и *) или формата файл1 + файл2 + файл3. Н
COPY 1.txt+2.txt 3.txt
Команда COPY имеет недостатки. Например, с ее помощью нельзя копировать скрытые и системные файлы, ф
Лабораторная работа 1 интерпретатор командной строки ос ms windows ответы
Лабораторная работа 2 – 2012
Интерпретатор командной строки ОС MS Windows XP
Часть 2. Язык интерпретатора и командные файлы
Цель работы – знакомство с языком интерпретатора командной строки ОС MS Windows XP и командными файлами, приобретение навыков самостоятельной разработки и отладки сценариев.
1. КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
1.1 Язык интерпретатора Cmd.exe. Командные файлы
Язык оболочки командной строки в ОС служит для написания командных файлов (КФ). Командный файл (или сценарий) в Windows — это текстовый файл с расширением cmd или bat, в котором записаны внешние и внутренние команды ОС, а также некоторые дополнительные команды. Исполнение КФ приводит к тому же результату, что и последовательный ввод записанных в нем команд. При выполнении одинаковых действий использование КФ может сэкономить время.
Управление последовательностью выполнения команд КФ осуществляют операторы IF, FOR, CALL и GOTO, выполнение которых аналогично работе одноименных операторов языков программирования. Для отключения дублирования выполняемых команд в начале КФ записывается команда @ECHO OFF. В приводимых ниже примерах КФ для уменьшения объема данная команда опущена.
1.1.1 Параметры командной строки. Команда shift
При запуске КФ в командной строке можно указывать произвольное число параметров, значения которых можно использовать внутри файла. Это позволяет, например, применять один и тот же КФ для выполнения команд с различными исходными данными.
Для доступа из КФ к параметрам командной строки применяются переменные %0, %1, …, %9 или %*. Значением переменной %0 является имя выполняемого КФ, переменные %1, %2, …, %9 — значения первых девяти параметров командной строки соответственно, а переменная %* — все аргументы. Если в командной строке при вызове КФ задано меньше девяти параметров, то оставшиеся переменные из %1 – %9 замещаются пустыми строками.
Пример 1. Пусть имеется КФ cop.bat:
Если запустить его из командной строки с двумя параметрами, например
и произойдет копирование каталога C:\Programs со всеми его подкаталогами в D:\Backup.
При необходимости можно использовать более девяти параметров командной строки. Это достигается с помощью команды SHIFT (сдвиг влево), которая изменяет значения замещаемых параметров с %0 по %9, копируя каждый параметр в предыдущий, то есть значение %1 копируется в %0, значение %2 – в %1 и т.д. Замещаемому параметру %9 присваивается значение параметра, следующего в командной строке за старым значением %9. Если же такой параметр не задан, то новым значением %9 будет пустая строка.
Пример 2. Пусть КФ my.bat вызван из командной строки следующим образом:
Тогда %0=my.bat, %1=p1, %2=p2, %3=p3, параметры %4 – %9 являются пустыми строками. После выполнения команды SHIFT значения замещаемых параметров изменятся следующим образом: %0=p1, %1=p2, %2=p3, параметры %3 – %9 – пустые строки.
Выполнить обратный сдвиг невозможно — нельзя восстановить параметр (%0), который был первым перед сдвигом.
1.1.2 Функции анализа имен файлов
В КФ предусмотрены функции анализа имен файлов и выделения свойств файла. Для параметра КФ с номером n (%n), задающего имя файла, допустимы функции, представленные в табл. 1.
Таблица 1. Функции анализа имен файлов
Выделяемое свойство файла
Переменная %n расширяется до полного имени файла
Из переменной %n выделяется только имя файла
Из переменной %n выделяется расширение имени файла
Возвращается дата и время создания (модификации) файла
Возвращается размер файла в байтах
Данные функции можно объединять друг с другом, например:
NXn — из переменной %n выделяются имя файла и расширение.
Пример 3. В каталоге C:\TEXT запущен КФ с параметром test.doc (%1=test.doc). Размер файла 5150 байт, дата создания 12.12.2011, время 18:57. Тогда применение функций, описанных в табл. 1, к параметру %1 даст следующие результаты:
1.1.3. Переменные среды. Оператор присваивания SET. Получение значений переменных
Внутри КФ можно использовать так называемые переменными среды (или переменные окружения), каждая из которых хранится в оперативной памяти, имеет свое уникальное имя, а ее значением является строка. Стандартные переменные среды автоматически инициализируются в процессе загрузки операционной системы. К таким переменным относятся:
WINDIR, которая определяет расположение каталога Windows,
TEMP, которая определяет путь к каталогу для хранения временных файлов Windows
PATH, в которой хранится системный путь (путь поиска), то есть список каталогов, в которых система должна искать выполняемые файлы или файлы совместного доступа.
В КФ с помощью команды присваивания значений SET можно объявлять собственные переменные среды и изменять их значения.
Для получения значения определенной переменной среды нужно заключить имя этой переменной в символы %. Например:
При запуске такого КФ на экран выведутся две строки:
1.1.4. Преобразования переменных как строк
С переменными среды в КФ можно производить операции преобразования, используя команду (оператор) SET.
Во-первых, над ними можно производить операцию конкатенации (соединения). Для этого нужно в команде SET просто написать рядом значения соединяемых переменных.
Во-вторых, из переменной среды можно выделять подстроки с помощью конструкции %имя_переменной:
n1,n2%, где число n1 определяет смещение (количество пропускаемых символов) от начала (если n1 положительно) или от конца (если n1 отрицательно) соответствующей переменной среды, а число n2 – количество выделяемых символов (если n2 положительно) или количество последних символов в переменной, которые не войдут в выделяемую подстроку (если n2 отрицательно). Если указан только один отрицательный параметр -n, то будут извлечены последние n символов. Например, если в переменной хранится строка «21.12.2012» (символьное представление текущей даты ), то после выполнения команд
новые переменные будут иметь значения: %dd1%=21, %dd2%=21, %mm%=12, %yyyy%=2012.
В-третьих, можно выполнять процедуру замены подстрок с помощью конструкции %имя_переменной:s1=s2% .В результате будет возвращена строка, в которой каждое вхождение подстроки s1 в соответствующей переменной среды заменено на s2. Например, после выполнения команд
в переменной b будет храниться строка «199456».
1.1.5. Операции с переменными как с числами
Значения переменных среды при выполнении КФ можно рассматривать как целые числа и производить с ними арифметические вычисления. Для этого используется оператор SET с ключом /A. Ниже приведен пример пакетного файла add2num.bat, складывающего два числа, заданных в качестве параметров командной строки, и выводящего полученную сумму на экран:
1.1.7. Связывание времени выполнения для переменных
При использовании группировки команд c помощью круглых скобок (например, в операторе IF) нужно учитывать, что переменные среды в КФ используются в режиме раннего связывания. С точки зрения логики выполнения КФ это может привести к ошибкам. Например, рассмотрим КФ 1.cmd:
По логике результат выполнения КФ файл1 и файл2 должен быть одинаковым — на экран должны быть выведены строки: «a=1» и «a=2». Реально так работает только файл 1.cmd, а файл 2.cmd два раза выведет строку «a=1».
Для правильного выполнения КФ, в котором используется группировка команд, для получения значения переменной вместо знака процента (%)необходимо использовать восклицательный знак (!) и предварительно включить режим связывания времени выполнения командой SETLOCAL ENABLEDELAYEDEXPANSION. Таким образом, для корректной работы файл 2.cmd должен иметь следующий вид: (рекомендуется проверить)
1.1.8. Прерывание и приостановка выполнения командных файлов
1.1.9. Вызов внешних командных файлов. Оператор CALL
Из одного КФ можно вызвать другой, указав его имя. Например:
В этом случае после выполнения КФ f.bat управление в вызывающий файл не передается. Для того, чтобы вызвать внешний КФ с возвратом в первоначальный файл, нужно использовать оператор CALL файл. Например:
В этом случае после завершения работы файла f.bat управление вернется в первоначальный файл на строку, следующую за командой CALL (в примере это команда COPY D:\*.* C:\).
1.1.11. Оператор перехода GOTO
КФ может содержать метки и операторы GOTO перехода к этим меткам. Любая строка, начинающаяся с двоеточия :, воспринимается при обработке КФ как метка.
Пример 4. Пусть имеется КФ следующего содержания:
В операторе GOTO можно задавать в качестве метки перехода строку :EOF, которая передает управление в конец текущего КФ.
Для перехода к метке внутри КФ кроме команды GOTO также можно использовать и рассмотренный выше оператор CALL :метка аргументы
При выполнении такой команды создается новый контекст текущего КФ с заданными аргументами, и управление передается на инструкцию, расположенную сразу после метки. Для выхода из такого КФ необходимо два раза достичь его конца. Первый выход возвращает управление на инструкцию, расположенную сразу после строки CALL, а второй выход завершает выполнение КФ.
1.1.12. Оператор проверки условия IF
С помощью оператора IF … ELSE (ключевое слово ELSE может отсутствовать) в КФ можно выполнять обработку условий двух типов. При этом если заданное после IF условие принимает истинное значение, система выполняет следующую за условием команду (или несколько команд, заключенных в круглые скобки), в противном случае выполняется команда (или несколько команд в скобках), следующие за ключевым словом ELSE – так же, как и в языках программирования.
Первый тип условия используется обычно для проверки значения переменной. Для этого применяются два варианта записи оператора IF:
(квадратные скобки указывают на необязательность заключенных в них параметров) или
Условие строка1==строка2 считается истинным при точном совпадении обеих строк. Параметр NOT указывает на то, что заданная команда выполняется лишь в том случае, когда сравниваемые строки не совпадают.
Для группировки команд могут использоваться круглые скобки. Иногда использование круглых скобок необходимо для правильной работы команды if…else – например для вывода на экран наибольшего из двух параметров, с которыми запущен КФ, следует использовать оператор
if %1 GTR %2 (echo %1 ) else (echo %2)
Строки могут быть литеральными или представлять собой значения переменных (например, %1 или %TEMP%). Кавычки для литеральных строк не требуются. Например,
При сравнении строк, заданных переменными, следует учитывать, что значение переменной (или параметр командной строки) может оказаться пустой строкой, и тогда выполнение КФ аварийно завершится. Поэтому при сравнении строк нужно приписывать к ним слева какой-нибудь символ, например:
С помощью команд IF и SHIFT можно в цикле обработать все параметры командной строки файла. Например, следующий КФ par.cmd выводит на экран имя запускаемого файла и все параметры командной строки:
Если запустить par.bat с двумя параметрами A B, на экран выведется следующая информация:
Рассмотрим условный оператор IF в общем виде:
IF [/I] строка1 оператор_сравнения строка2 команда
Форма записи операторов_сравнения представлена в табл. 2.