Мегаобучалка Главная | О нас | Обратная связь


Особенности командных файлов в Windows NT-XP



2018-06-29 461 Обсуждений (0)
Особенности командных файлов в Windows NT-XP 0.00 из 5.00 0 оценок




Фактически в составе Windows NT имеются два командных интерпретатора – command.com во встроенной виртуальной машине MS-Dos (аналогичный по возможностям рассмотренному ранее) и специальный интерпретатор команд Windows NT – cmd.exe (%SytemRoot%\System32).

Для запуска командного интерпретатора можно вызвать ярлык «Пуск/Программы/Командная строка», файловый менеджер типа FAR или загрузить cmd.exe непосредственно. При запуске cmd.exe можно использовать, как и в command.com ключи /C, /K, а также задание цвета и кодировки. Ключи /X и /Y соответственно включают и выключают расширенный режим работы интерпретатора (по умолчанию установлен).

 

Работа с переменными среды текущего командного окна осуществляется, как и в Windows 9x, с помощью команды set. Естественно, изменения, которые вносятся в переменные среды этой команды, актуальны только в текущем командном окне.

Новые, весьма полезные, возможности у команды set появляются при включении расширенной обработки команд. Теперь переменные могут рассматриваться как числа и с ними можно производить арифметические вычисления. Для этой цели имеется дополнительный ключ /а:

SET /А переменная=выражение

Использование ключа /а указывает, что стоящая справа от знака равенства строка является числовым выражением, значение которого вычисляется.

Например, если задать команду

SET /А М=1+2

то значение переменной M будет равно трем.

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

· группировка с помощью круглых скобок ();

· арифметические операторы умножения (*), целочисленного деления (/), остатка от деления (%);

· арифметические операторы сложения (+) и вычитания (-);

· двоичный сдвиг влево (<<) и вправо (>>);

· двоичное И (&);

· двоичное исключающее ИЛИ (л);

· двоичное ИЛИ (|);

· операторы присваивания =*, =/, =%, =+, =-, =, &=, ^=, |=, <<= и >>=;

· разделение операторов с помощью запятой (,).

При использовании любых логических или двоичных операторов необходимо заключить строку выражения в кавычки. Можно использовать префиксы для систем счисления – 0x -16, 0b - 2, 0 - 8. Любые нечисловые строки в выражении рассматриваются как имена переменных среды, значения кото­рых преобразуются в числовой вид перед использованием. Если переменная с указанным именем не определена, вместо нее подставляется ну­левое значение. Например, если переменная X не была предваритель­но задана, то в результате выполнения команды

SET /A N=X+5

значение n будет равно пяти.

Таким образом, применение ключа /а позволяет выполнять арифметические операции со значениями переменных среды, причем не нужно вводить зна­ки % для получения их значений. Кроме того, усовершенствована работа с переменными среды как со строками (кроме конкатенации – замена вхождений и выделение подстрок).

SET /P variable=”comment” - позволяет организовать диалог с пользователем (аналог упраздненной команды choice)

If “%variable%”==”const” goto

Командные файлы в Windows NT, как и в Windows 9x, являются обычными текстовыми файлами, однако для них в операционной системе зарезервиро­ваны не одно, а два расширения: bat и cmd. Новые возможности командных файлов связаны с командами setlocal, endlocal, pushd, popd, a также изменениями в goto, call, if, for.

В Windows NT имеется возможность локализовать изменения переменных среды внутри пакетного файла, т. е. автоматически восстанавливать значе­ния всех переменных в том виде, в каком они были до начала запуска дан­ного файла. Команда SETLOCAL определяет начало области локальных установок пере­менных среды, т.е. изменения среды, внесенные после вы­полнения setlocal, будут являться локальными относительно текущего па­кетного файла. Каждая команда setlocal должна иметь соответствующую команду ENDLOCAL для восстановления прежних значений переменных среды.

При работе с параметрами командного файла можно обозначить все аргументы через %*, а также использовать синтаксический анализ:

Операторы Описание Пример
%~Fn Полное имя файла %~F1=C:\TEXT\Рассказ.doc
%~Dn Имя диска %~D1=C:
%~Pn Путь к файлу %~P1=\TEXT\
%~Nn Имя файла %~N1=Рассказ
%~Xn Расширение файла %~X1=doc

Можно задавать в качестве метки перехода строку :EOF, которая передает управление в конец текущего пакетного файла. Это позволяет легко выйти из пакетного файла без определения каких-либо меток в самом его конце (GOTO :EOF).

В качестве адресата команды CALL можно использовать метки внутри текущего командного файла (аналог подпрограмм). Три вызове такой команды создается новый контекст текущего пакетного файла с заданными аргументами и управление передается на инструкцию, расположенную сразу после метки. Для выхода из такого пакетного файла необходимо два раза достичь его конца (первый выход возвращает управление на инструкцию, расположенную сразу после call, а второй выход завершает выполнение пакетного файла).

Дополнительно вводятся еще три варианта команды IF:

1) IF [/I] строка1 оператор_сравнения строка2 команда

В качестве операторов_сравнения используются: EQL – равно, NEQ – не равно, LSS – меньше, GTR – больше, LEQ – меньше или равно, GEQ – больше или равно. Ключ /I задает сравнение без учета регистра.

2) IF CMDEXTVERSION число команда

Служит для определения внутреннего номера версии расширенной обработки команд (какая на 2000 и XP - ?)

3) IF DEFINED переменная команда

Возвращает истинное значение, если переменная среды определена.

В Windows NT дос­тупны еще пять разновидностей циклов FOR, которые обеспечивают следующие функции:

1) FOR /D %переменная IN (набор) DO команда [параметры]

Выполнение заданной команды для всех подходящих имен каталогов, например получение списка всех каталогов на диске C:

FOR /D %%f IN (C:\) DO ECHO %%f

2) FOR /R [[диск:]путь] %переменная IN (набор) DO команда [параметры]

Организует рекурсивное выполнение заданной команды для определенного каталога, а также всех его подкаталогов. Например, для распечатки всех файлов с расширением *.txt:

FOR /R %%f IN (*.txt) DO PRINT %%f

3) FOR /L %переменная IN (начало,шаг,конец) DO команда [параметры]

Класический цикл с параметром (заданными началом, концом и шагом приращения). Например:

FOR /L %%f IN (1,1,5) DO ECHO %%f

4) FOR /F [“ключи”] %переменная IN (набор) DO команда [параметры]

Чтение и обработка строк из набора текстовых файлов. Ключи позволяют выделять слова и подстроки (токены) по разделителям (DELIMS) или начальным символам.

5) FOR /F [“ключи”] %переменная IN (‘строка’) DO команда [параметры]

Позволяет обработать строку вывода определенной команды (вместо набора файлов в предыдущем варианте – строка вызоыв команды в апострофах). Например, для вывода имен всех переменных среды:

FOR /F “DELIMS==” %%i IN (‘SET’) DO ECHO %%i

Кроме того, для переменных команды FOR разрешены также синтаксические операции (выделение имени, пути, диска - аналогично рассм. выше переменным окружения).

Команда PUSHD сохраняет имя текущего каталога для команды POPD и осуще­ствляет переход в другой каталог. Ее синтаксис имеет вид:

PUSHD [путь | ..]

Вновь сделать текущим каталог, сохраненный командой pushd, можно с помощью команды popd.

Упражнения

1. Пусть имеется текстовый файл protokol.txt, в котором хранится журнал обработанных файлов в следующем формате:

<имя файла> <дата> <время>

Слово дата здесь начинается в каждой строке с двадцатой позиции.

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

Решение:

Практически все нужные действия выполняются с помощью конвейеризации команд find и sort:

@ЕСНО OFF
RЕМ Проверка наличия параметров командной строки

IF -%1==- GOTO NoParam

IF -%2==- GOTO NoParam



2018-06-29 461 Обсуждений (0)
Особенности командных файлов в Windows NT-XP 0.00 из 5.00 0 оценок









Обсуждение в статье: Особенности командных файлов в Windows NT-XP

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (461)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)