Федерального государственного бюджетного образователь



Скачать 318.6 Kb.
Pdf просмотр
страница1/3
Дата28.11.2016
Размер318.6 Kb.
Просмотров635
Скачиваний0
  1   2   3

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
ВОЛЖСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ (ФИЛИАЛ)
ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО БЮДЖЕТНОГО ОБРАЗОВАТЕЛЬ-
НОГО УЧРЕЖДЕНИЯ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«ВОЛГОГРАДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
КАФЕДРА «ИНФОРМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ»
Д.Н. Лясин, С.Г. Саньков
Командные файлы ОС MS Windows
Методические указания
Волгоград
2012

УДК 004.056
Р е ц е н з е н т :
канд. тех. наук доцент В. И. Капля
Издается по решению редакционно-издательского совета
Волгоградского государственного технического университета
Лясин, Д.Н. Саньков С.Г. Командные файлы операционной системы MS
Windows

[
Электронный ресурс]: методические указания / Д.Н. Лясин, С.Г.
Саньков//Сборник «Методические указания» Выпуск.-Электрон. текстовые дан.(1файл:207 Kb) – Волжский: ВПИ (филиал) ВолгГТУ,2012.-
Систем.требования:Windows 95 и выше; ПК с процессором 486+; CD-
ROM.
Содержатся сведения, необходимые для изучения средств автоматизации админи- стрирования операционных систем семейства Windows в текстовом режиме с использо- ванием командного интерпретатора. Рассмотрены принципы работы командного ин- терпретатора, приведены описания основных команд ОС Windows, дано описание ко- мандных файлов и основных структурных средств их программирования. Приведен по- рядок выполнения и варианты заданий к лабораторным работам.
Предназначены для студентов, обучающихся по направлению 230100 "Инфор- матика и вычислительная техника" и направлению 231000 "Программная инженерия" всех форм обучения в рамках курсов «Системное программное обеспечение», «Основы системного программного обеспечения» и «Операционные системы» .CD-ROM
©
Волгоградский государственный техниче- ский университет, 2012
©
Волжский политехнический институт, 2012

3 1 Лабораторная работа № 1. Командные файлы ОС Windows
Цель работы:
изучить интерфейс командной строки ОС Windows, приобре- сти навыки решения типовых задач администрирования операционной системы
Windows с использованием командных файлов.
1.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. Окно командной оболочки в Windows XP с результатом выполнения команды
vol

4
Команды

Все команды, которые оператор может выполнить в окне интерпретатора
Cmd.exe, делятся на внутренние и внешние. Внутренние команды распознаются самим интерпретатором. К ним относятся, например, cls – очистка экрана, time – просмотр и изменение текущего времени, dir – просмотр содержимого папки.
Внешние команды оформлены как отдельные программы, которые по умолчанию находятся в той же папке, что и сам интерпретатор cmd.exe. Внешними являются, например, команды: xcopy – копирование файлов и каталогов, at – запуск про- грамм и команд в заданное время, cacls – просмотр и изменение прав доступа к файлам и папкам.
Рассмотрим общие принципы работы с командной строкой. В ответ на стандартное приглашение вида
полный_ путь_к_ текущей_ папке>_
можно ввести имя команды с параметрами и ключами. Справку по конкретной команде можно получить в окне оболочки, если запустить команду с ключом /?
(рис.2).
Рисунок 2. Вывод справки о работе команды копирования файлов copy
Детальное описание каждой команды не входит в объем настоящих методи- ческих указаний, но соответствующий справочник можно найти, например, в [5].
Список команд можно получить и в окне командной оболочки, выполнив команду
help
По умолчанию команды выводят результаты своего исполнения на экран монитора, и принимают входные данные с клавиатуры. Но это соглашение можно изменить и для этого служат операторы перенаправления.
Операторы перенаправления команд используются для изменения место- положений потоков ввода и вывода команд, заданных по умолчанию, на какие- либо другие. Местоположение потоков ввода и вывода называется дескриптор. В таблице 1 описаны операторы перенаправления потоков ввода и вывода команд.
С использованием операторов перенаправления можно направить вывод результатов работы команды (скрипта) в заданный файл или использовать эти ре- зультаты в качестве входных параметров для выполнения другой команды

5
(скрипта). Это позволяет организовывать эффективную коммуникацию между процессами при минимальных затратах времени и ресурсов.
Таблица 1. Операторы перенаправления ввода/вывода команд
Оператор перена- правления
Описание
>
Записывает данные на выходе команды вместо окна ко- мандной строки в файл или на устройство, например, на принтер.
<
Читает поток входных данных команды из файла, а не с клавиатуры.
>>
Добавляет выходные данные команды в конец файла, не удаляя при этом существующей информации из файла.
>&
Считывает данные на выходе одного дескриптора как входные данные для другого дескриптора.
<&
Считывает входные данные одного дескриптора как вы- ходные данные другого дескриптора.
|
Считывает выходные данные одной команды и записыва- ет их на вход другой команды. Эта процедура известна под названием «канал».
По умолчанию, входные данные команды (дескриптор STDIN) отсылаются с клавиатуры интерпретатору команд Cmd.exe, далее Cmd.exe отправляет выход- ные данные команды (дескриптор STDOUT) в окно командной строки. В сле- дующей таблице представлены доступные дескрипторы.
Таблица 2. Дескрипторы устройств ввода/вывода ОС Windows
деск-
риптор

Числовой эквива-
лент дескриптора

Описание

STDI
N
0
Ввод с клавиатуры
STDO
UT
1
Вывод в окно командной строки
STDE
RR
2
Приемник сообщений об ошибках при выполнении команд
UND
EFINED
3-9
Эти дескрипторы определяются индиви- дуально для каждой прикладной про- граммы.
Номера от 0 до 9 представляют первые 10 дескрипторов. Для запуска про- граммы и перенаправления любого из 10 дескрипторов используется интерпрета- тор команд Cmd.exe. Для задания требуемого дескриптора перед оператором пе- ренаправления введите его номер. Если дескриптор не определен, то по умолча- нию оператором перенаправления ввода «<» будет ноль (0), а оператором перена- правления вывода «>» будет единица (1). После ввода оператора «<» или «>» не- обходимо указать, откуда читать и куда записывать данные. Можно задать имя файла или любой из существующих дескрипторов. Для задания перенаправления

6
в существующие дескрипторы используется амперсанд (&), затем номер требуе- мого дескриптора (например, &номер_дескриптора). Например, для перенаправ- ления дескриптора 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.volpi.ru
ping www.volpi.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
Оператор конвейера наиболее эффективен в комбинации с фильтрующими командами. Команды-фильтры дают возможность сортировать, просматривать и отбирать часть выходной информации других команд. Фильтры делят, переупо- рядочивают или выделяют отдельные части из проходящей через них информа- ции. В приведенной ниже таблице перечислены команды-фильтры, доступные в

7
ОС 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).
Например, следующая команда сортирует в алфавитном порядке все запущенные

8
процессы 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:\

9
Проверить IP-соединение с узлом www.volpi.ru и если соединения нет вы- вести на экран текущие параметры сети TCP/IP.
ping www.volpi.ru || ipconfig /all
Если в корне диска d: есть файлы с расширением txt, скопировать их в папку tmp, а сами файлы удалить
dir d:\*.txt && (xcopy d:\*.txt d:\tmp & del d:\*.txt)
В последнем примере использована группировка команд и в случае ус- пешного выполнения команды dir (файлы с заданной маской найдены), выпол- нятся сразу две команды – копирования файлов xcopy и удаления файлов del.
Командные файлы
Представленные в последней таблице операторы являются средствами группировки команд с элементами программирования. Но гораздо эффективнее с задачей компоновки последовательности команд в алгоритмически упорядочен- ную программу-скрипт можно справиться, создав командный файл.
Командный файл представляет собой обычный текстовый файл с расшире- нием bat (или cmd), в который можно поместить последовательность команд опе- рационной системы, а также ряд инструкций для формирования основных алго- ритмических структур последовательного выполнения, ветвления и циклического повторения. Таким образом, командный файл имеет сходство с программами на интерпретируемых алгоритмических языках программирования, но для его ис- полнения не требуется установки среды программирования или дополнительного интерпретатора, достаточно интерпретатора cmd.exe.
В простейшем случае в командный файл можно записать несколько ко- манд, и они будут выполнены последовательно, друг за другом. Пусть, например, файл arc.bat содержит следующий набор инструкций.
d:
cd d:\tmp
d:\winrar\rar a arc.rar *.txt
del *.txt
Если запустить на выполнение файл arc.bat, то он поместит в архив arc.rar все текстовые файлы из папки tmp, а затем удалит эти файлы. Теперь можно на- строить (например, с помощью команды at) ежедневный или еженедельный за- пуск этого командного файла в определенное время, и папка d:\tmp не будет пере- полняться текстовыми файлами. Так можно выполнять командный файл arc.bat каждую субботу в 6:00:
at 6:00 /every:s arc.bat
Таким образом, командные файлы являются удобным средством автомати- зации выполнения рутинных задач администрирования. Как уже говорилось, воз- можности командных файлов шире, чем простое перечисление последовательно выполняемых команд. Об основных возможностях командных файлов речь пой- дет ниже, здесь же отметим возможность добавлять комментарии в тексты скрип- тов командных файлов. Строки-комментарии должны начинаться с ключевого слова rem и позволяют на естественном языке внести пояснения в текст скрипта.
Пример:
REM
Добавим в архив arc.bat все текстовые файлы из текущей папки

10
d:\winrar\rar a arc.rar *.txt


Вывод сообщений из командного файла и дублирование команд
Команды пакетного файла выводятся на экран. Это может оказаться неже- лательным, отвлекая оператора от результатов работы скрипта подробностями его реализации. В этом случае с помощью команды echo off можно отключить дуб- лирование на экране команд, идущих после нее. Например, если начать скрипт с команды echo off, то в окно не будут выводиться исполняемые команды (кроме самой команды echo off). Отключить дублирование самой команды echo off мож- но, поместив в начале строки знак @. Этот знак подавляет дублирование команды только из своей строки.
Отказ от дублирования команд на экране может быть отменен. Для этого используется команда echo on.
Таким образом, если начать командный файл с команды
@ЕСНО OFF
то дублирование команд будет полностью подавлено.
Вывести строку сообщения на экран можно с помощью команды
ECHO сообщение
Например,
ECHO Привет!
Если командный файл исполняется в русифицированной версии Windows, то необходимо учитывать, что в среде командного процессора символы нацио- нального алфавита используются в DOS-кодировке. Для переключения между ко- довыми страницами Windows и DOS используется команда
CHCP номер страницы
rem использовать кодовую страницу 866 (DOS):
CHCP 866
rem использовать кодовую страницу 1251 (WINDOWS):
CHCP 1251
Команда echo
.
(c точкой непосредственно за словом "echo") выводит на экран пустую строку.
Вывод сообщений командой echo можно перенаправить в файл или другое устройство вывода. Для этого, как нетрудно догадаться, используется описанный в ранее механизм перенаправления ввода/вывода (символы > и >>).
Например,
@ЕСНО OFF
ECHO Содержимое папки work по состоянию на> report.txt
date /t>> report.txt
time /t>> report.txt
dir d:\work >>report.txt

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

11
формируются при загрузке, регистрации пользователя в системе, старте или завер- шении некоторых приложений, а также в сеансе работы с окном командной оболоч- ки.
В Windows различаются два вида переменных среды: переменные среды
операционной системы
(системные переменные) и переменные среды текущего
пользователя.
Системные переменные среды определяются операционной системой и имеют одни и те же значения, для всех пользователей. Например: переменные comspec
(полный путь к командному интерпретатору, comspec=C:
\WINDOWS\system32\cmd.exe), os
(название операционной системы, os=windows_NT), SystemRoot (системный каталог операционной системы), Path
(определяет пути, которые система проверяет при поиске запущенных программ и команд). Добавлять новые системные переменные или изменять значения сущест- вующих могут члены группы администраторов.
Переменные среды текущего пользователя могут иметь разные значения для каждого пользователя на конкретном компьютере. В число таких переменных входят переменные, определяемые в приложениях (например, путь к каталогу, в котором сохраняются файлы приложений).
Переменные среды операционной системы и конкретного пользователя можно увидеть и изменить в диалоговом окне «Переменные среды» из вкладки
«Дополнительно» окна свойств для значка «Мой компьютер» (рис. 3).
Из командной строки с переменными среды можно работать с использо- ванием команды set.
Когда открывается новое окно командного интерпретатора, переменные среды обоих типов копируются в переменные среды этого командного окна. При этом копирование происходит в следующем порядке:
1-
Переменные среды операционной системы.
2-
Переменные среды пользователя.
3-
Переменные из файла %systemRoot%\SYSTEM32\autoexec.nt.
В сеансе работы с окном командной оболочки оператор может добавлять новые переменные среды с использованием команды set. При этом все добавлен- ные в сеансе переменные среды действительно лишь для этого сеанса и теряются после закрытия окна.

12
Рисунок 3. Графический интерфейс доступа к переменным среды
Если запустить команду

Каталог: resource
resource -> Муниципальное учреждение дополнительного образования
resource -> Муниципальное учреждение дополнительного образования
resource -> Невероятно быстрый: Micromax представляет свой первый смартфон с восьмиядерным процессором Canvas Knight
resource -> Мощный, но легкий: Micromax представляет смартфон Canvas Turbo Mini Рекламная компания смартфона в России впервые пройдет с участием Хью Джекмана, известного голливудского киноактёра и продюсера
resource -> Micromax анонсирует старт продаж Canvas Magnus Q334


Поделитесь с Вашими друзьями:
  1   2   3


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал