Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
9
Добавлен:
27.11.2024
Размер:
339.52 Кб
Скачать

Практическая работа по дисциплине «Инструментальные средства ИС»

Создание пакетных файлов с использованием командной строки

Цель работы: изучить интерфейс командной строки ОС Windows, приобрести навыки решения типовых задач администрирования операционной системы

Windows с использованием командных файлов.

ОСНОВНЫЕ ПОНЯТИЯ

1.Командный интерпретатор.

Интерфейс командной строки является мощным и гибким инструментом решения широкого круга административных задач. Несмотря на то, что графический интерфейс ОС Windows кажется более удобным и эффективным для управления ресурсами компьютера, использование командной строки выглядит предпочтительнее при необходимости автоматизации или масштабирования задач администрирования. При этом использование встроенных в операционную систему средств поддержки выполнения скриптов, таких как внутренние и внешние команды, операторы,

переменные, позволяет не прибегать к сторонним компиляторам высокоуровневых языков для решения даже очень сложных задач – стандартная поставка операционной системы содержит все необходимые инструменты.

Операционная система Windows поддерживает командный диалог с пользователем с использованием командного интерпретатора или, иначе,

оболочки командной строки (command shell). Его назначение – находясь в оперативной памяти принимать от оператора и выполнять команды. В Windows 9x, как и в MS-DOS, командный интерпретатор по умолчанию был представлен исполняемым файлом command.com. Начиная с версии Windows NT операционная система предоставляет пользователю альтернативный и более функциональный интерпретатор команд Cmd.exe.

Файл командного интерпретатора Cmd.exe в ОС Windows NT/2000/XP/Vista/7 находятся в каталоге %SystemRoot%\SYSTEM32, где переменной среды %SystemRoot% соответствует путь к системному каталогу

Windows). Запустить командный интерпретатор можно, послав на исполнение файл Cmd.exe любым доступным способом: из Проводника,

файлового менеджера, пункта главного меню Выполнить… (Run). В

результате откроется новое окно командного интерпретатора (рис.1), в

котором можно запускать команды и видеть результат их выполнения.

Рисунок 1 – Внешний вид командного интерпретатора MS Windows

2.Команды.

Все команды, которые оператор может выполнить в окне интерпретатора Cmd.exe, делятся на внутренние и внешние. Внутренние команды распознаются самим интерпретатором. К ним относятся, например, cls – очистка экрана, time – просмотр и изменение текущего времени, dir –

просмотр содержимого папки. Внешние команды оформлены как отдельные программы, которые по умолчанию находятся в той же папке, что и сам интерпретатор cmd.exe. Внешними являются, например, команды: xcopy –

копирование файлов и каталогов, at – запуск про-грамм и команд в заданное время, cacls – просмотр и изменение прав доступа к файлам и папкам.

Рассмотрим общие принципы работы с командной строкой. В ответ на стандартное приглашение вида:

полный путь к текущей папке>_

можно ввести имя команды с параметрами и ключами. Справку по конкретной команде можно получить в окне оболочки, если запустить команду с ключом /? (рис.2).

Рисунок 2 – Вывод справки о команде time в командном интерпретаторе MS Windows

Полный список команд можно просмотреть воспользовавшись командой help.

По умолчанию команды выводят результаты своего исполнения на экран монитора, и принимают входные данные с клавиатуры. Но это соглашение можно изменить и для этого служат операторы перенаправления.

Операторы перенаправления команд используются для изменения местоположений потоков ввода и вывода команд, заданных по умолчанию,

на какие-либо другие. Местоположение потоков ввода и вывода называется дескриптор. В таблице 1 описаны операторы перенаправления потоков ввода и вывода команд.

С использованием операторов перенаправления можно направить вывод результатов работы команды (скрипта) в заданный файл или использовать эти результаты в качестве входных параметров для выполнения другой команды (скрипта). Это позволяет организовывать эффективную коммуникацию между процессами при минимальных затратах времени и ресурсов.

Таблица 1 – Операторы перенаправления

Оператор перенаправления

Описание

>

Записывает данные на выходе

 

команды вместо окна командной

 

строки в файл или на устройство,

 

например, на принтер.

<

Читает поток входных данных

 

команды из файла, а не с клавиатуры.

>>

Добавляет выходные данные

 

команды в конец файла, не удаляя

 

при этом существующей информации

 

из файла.

>&

Считывает данные на выходе

 

одного дескриптора как входные

 

данные для другого дескриптора.

<&

Считывает входные данные одного

 

дескриптора как выходные данные

 

другого дескриптора.

>

Считывает выходные данные одной

 

команды и записывает их на вход

 

другой команды. Эта процедура

 

известна под названием «канал».

<

Записывает данные на выходе

 

команды вместо окна командной

 

строки в файл или на устройство,

 

например, на принтер.

По умолчанию, входные данные команды (дескриптор STDIN)

отсылаются с клавиатуры интерпретатору команд Cmd.exe, далее Cmd.exe

отправляет выходные данные команды (дескриптор STDOUT) в окно командной строки. В следующей таблице представлены доступные дескрипторы.

Таблица 2 – Доступные дескрипторы

Дескриптор

Числовой

Описание

 

эквивалент

 

 

дескриптора

 

STDIN

0

Ввод с клавиатуры

STDOUT

1

Вывод в окно командной строки

STDERR

2

Приемник сообщений об ошибках

 

 

при выполнении команд

UNDEFINED

3-9

Эти дескрипторы определяются

 

 

индивидуально для каждой

 

 

прикладной программы.

Номера от 0 до 9 представляют первые 10 дескрипторов. Для запуска программы и перенаправления любого из 10 дескрипторов используется интерпретатор команд Cmd.exe. Для задания требуемого дескриптора перед оператором перенаправления введите его номер. Если дескриптор не определен, то по умолчанию оператором перенаправления ввода «<» будет ноль (0), а оператором перенаправления вывода «>» будет единица (1). После ввода оператора «<» или «>» необходимо указать, откуда читать и куда записывать данные. Можно задать имя файла или любой из существующих дескрипторов. Для задания перенаправления в существующие дескрипторы используется амперсанд (&), затем номер требуемого дескриптора

(например, &номер_дескриптора). Например, для перенаправления дескриптора 2 (STDERR) в дескриптор 1 (STDOUT) введите: 1>&2.

Например, чтобы сообщения об ошибках и результаты работы скрипта выводились в файл, подаем команду:

myScript.bat >res.txt 2>&1

Здесь сначала стандартный вывод перенаправляется в файл, а затем дескриптор потока STDERR перенаправляется туда же, куда перенаправлен

STDOUT. Если же поменять местами операции перенаправления: myScript.bat 2>&1 1>res.txt

то STDERR будет сначала перенаправлен на поток STDOUT (консоль),

а уже затем STDOUT перенаправляется в файл. В результате полезный вывод будет направлен в файл, а ошибки – на экран.

В операторах перенаправления вместо имени файла можно указывать стандартные обозначения устройств компьютера. В Windows

поддерживаются следующие имена устройств: PRN (принтер),LPT1–LPT3

(соответствующие параллельные порты), AUX (устройство, присоединяемое к последовательному порту 1), COM1–COM3 (соответствующие последовательные порты), CON (терминал: при вводе это клавиатура, при выводе - монитор), NUL (пустое устройство, все операции ввода/вывода для него игнорируются).

Примеры.

Вывод в файл папки.txt списка всех папок из текущей папки dir /A:D /B >папки.txt

Вывод справки по команде tasklist в файл tasklist _hlp.txt tasklist /? > tasklist_hlp.txt

Дописать в файл check_connect.txt результат проверки IP-соединения с узлом www.bittu.org.ru

ping www.bittu.org.ru>>check_connect.txt

Перенаправить сообщения об ошибках работы команды в файл error.txt taskkill /s comp1 /pid 1022 2>error.txt

Сменить дату на 1.1.2013 echo 1.1.2013 | date

В последнем примере использован оператор конвейеризации |. С его помощью можно сообщения, выводимые первой командой, передавать в качестве входных данных для второй команды. В данном случае в качестве входных данных для команды date, ожидающей на входе значение новой даты в формате дд.мм.гггг, использован вывод первой команды (echo),

которая выводит на экран заданную строку-параметр. Если заранее записать новую дату в файл date.txt, то изменение даты возможно и такой командой:

date < date.txt

Оператор конвейера наиболее эффективен в комбинации с фильтрующими командами. Команды-фильтры дают возможность

сортировать, просматривать и отбирать часть выходной информации других команд. Фильтры делят, переупорядочивают или выделяют отдельные части из проходящей через них информации. В приведенной ниже таблице перечислены команды-фильтры, доступные в ОС Windows.

Таблица 3 – Команды фильтры

Команда

Описание

more

Отображает содержимое файла или

 

вывода команды в одном окне

 

командной строки за раз.

find

Поиск указанных символов в файлах

 

или выводе команды.

findstr

Поиск образцов текста в файлах с

 

использованием регулярных

 

выражений

sort

Сортировка файлов или вывода

 

команды по алфавиту.

Для направления данных из файла на вход фильтра используется символ «меньше» (<). Для направления на вход фильтра выхода другой команды используется канал (|).

Команда more выводит содержимое файла или выхода команды в одном окне командной строки за раз. Например, чтобы отобразить содержимое файла List.txt в одном окне командной строки за раз, введите следующую команду: more list.txt (или more < list.txt). Отображается одно окно командной строки со сведениями, а затем в нижней части окна командной строки отображается строка -- More --. Для перехода к следующему окну командной строки, нажмите любую клавишу Пробел, для вывода следующей строки нажмите Enter, для остановки просмотра следует нажать клавишу q (полный список доступных клавиш см. в справке).

Команда more полезна при работе с командами, создающими выход более одного окна командной строки. Например, при выводе дерева каталогов жесткого диска. Если на диске содержится больше каталогов, чем может быть одновременно выведено в окне командной строки, можно использовать команду tree с каналом (|) и команду more. tree c:\ | more На экран будет

выведен первое окно командной строки с выходом команды tree, а затем отобразится строка

-- More --.

Команда find проводит поиск заданной строки или текста в файлах.

Команда Cmd.exe отображает каждую строку, которая совпадает со строкой или текстом, указанным в окне командной строки. Чтобы использовать команду find в качестве команды-фильтра, необходимо включить символ

«меньше» (<) и строку или текст, которые надо искать либо использовать команду ”канал”. Например, команда dir | find ”.2012” отфильтрует в выводе команды dir все файлы и папки, в строках описания которых встречается строка .2012 (созданные в 2012 году). Необходимо также помнить, что по умолчанию при поиске команда find учитывает регистр.

Команда sort выполняет сортировку по алфавиту текстового файла или вывода команды. Например, следующая команда сортирует содержимое файла List.txt и отображает результаты в окне командной строки: sort < list.txt

В этом примере команда sort сортирует строки файла List.txt в алфавитном порядке и выводит результат на экран без изменения файла. Для сортировки вывода команды следует ввести команду, затем символ канала (|) и команду sort (команда | sort). Например, следующая команда сортирует в алфавитном порядке все запущенные процессы tasklist | sort. Команда sort имеет ряд параметров. Например, в таком варианте:

dir | sort /+6

сортировка будет осуществляться начиная с 7-го символа (+6 –

пропустить первые 6). В выводе команды dir с 7-й позиции начинается год создания файлов и папок, следовательно, команда выведет содержимое текущей папки, отсортированной по годам.

Зачастую решение некоторой практической задачи предполагает выполнение нескольких команд. В этом случае их объединяют в специальные командные файлы, но о них речь пойдет позже. Windows предоставляет возможность объединять несколько команд в одной строке, допуская их

последовательное выполнение, а также разрешая обуславливать выполнение одних команд результатами выполнения других.

Таблица 4 - Операторы условного выполнения команд

Символ

Синтаксис

Определение

&

команда1 & команда2

Используется для

 

 

 

разделения нескольких

 

 

команд в одной

 

 

 

командной строке. В

 

 

Cmd.exe выполняется

 

 

первая команда, затем

 

 

вторая команда.

 

&&

команда1 && команда2

Запускает команду,

 

 

стоящую за символом

 

 

&&, только если

 

 

 

команда, стоящая перед

 

 

этим символом была

 

 

выполнена успешно. В

 

 

Cmd.exe выполняется

 

 

первая команда. Вторая

 

 

команда выполняется,

 

 

только если первая была

 

 

выполнена успешно

 

 

(если переменная

 

 

 

окружения errorlevel=0).

||

команда1 || команда2

Запускает команду,

 

 

стоящую за символом

 

 

||, только если команда,

 

 

стоящая перед

 

 

 

символом || была

 

 

 

выполнена с ошибкой. В

 

 

Cmd.exe выполняется

 

 

первая команда. Вторая

 

 

команда выполняется,

 

 

только если первая была

 

 

выполнена c ошибкой

 

 

(полученный код

 

 

 

ошибки errorlevel

 

 

 

превышает ноль).

 

( )

(команда1 & команда2)

Используется

для

 

 

группировки или

 

вложения команд.

Примеры.

Вывести на экран содержимое корневой папки диска C:, дождаться нажатия клавиши (команда pause), вывести на экран содержимое корневой папки диска D:.

dir c:\ & pause & dir d:\

Проверить IP-соединение с узлом www.bittu.org.ru и если соединения нет вывести на экран текущие параметры сети TCP/IP.

www.bittu.org.ru || ipconfig /all

Если в корне диска d: есть файлы с расширением txt, скопировать их в папку tmp, а сами файлы удалить

dir d:\*.txt && (xcopy d:\*.txt d:\tmp & del d:\*.txt)

В последнем примере использована группировка команд и в случае успешного выполнения команды dir (файлы с заданной маской найдены),

выполнятся сразу две команды – копирования файлов xcopy и удаления файлов del.

ЗАДАНИЯ К ЛАБОРАТОРНОЙ РАБОТЕ

1.Откройте справочник по командной строке Windows (help).

2.Выведите полный список команд справочника в файл

help_cmd.txt

3.Изучите названия внешних и внутренних команд Windows.

4.Изучите справку по команде Dir. Используя эту команду выведите на экран список всех скрытых и системных файлов на диске H:

5.Изучите справку по команде Tasklist. Создайте в папке spo1 на диске H: текстовый файл, содержащий список процессов, использовавших процессор более 10 минут. Отсортируйте список с использованием команды

sort.