Меню

Лабораторная работа 1 интерпретатор командной строки ос ms windows ответы

Лабораторная работа № 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. Язык интерпретатора и командные файлы

Читайте также:  Сколько идет поиск обновлений windows

Цель работы – знакомство с языком интерпретатора командной строки ОС 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 даст следующие результаты:

Читайте также:  Загрузочная флешка windows zverdvd

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 должен иметь следующий вид: (рекомендуется проверить)

Читайте также:  Rtm tool для windows

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.

Adblock
detector