Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС лабы / ОС - Лабораторная работа 2.doc
Скачиваний:
83
Добавлен:
01.06.2015
Размер:
524.8 Кб
Скачать
      1. Передача управления строке пакетного файла

GOTO метка

GOTO :EOF

Метка должна находиться в отдельной строке и начинаться с двоеточия.

Команда “GOTO :EOF” вызывает передачу управления в конец текущего пакетного файла. Это позволяет легко выйти из пакетного файла без определения каких-либо меток.

      1. Оператор условного выполнения команд в пакетном файле

IF [NOT] [/I] условие команда1 [ELSE команда2]

NOT

Обращает истинность условия: истинное условие становится ложным, а ложное – истинным

/I

Для условий, основанных на сравнении строк, задает сравнение без учета регистра

команда1

Команда, которую следует выполнить в случае истинности условия

команда2

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

Условие, определяющее выполнение команды, может быть одним из следующих:

ERRORLEVEL число

Истинно, если код завершения последней выполненной программы не меньшеуказанного числа

EXIST файл

Истинно, если файл с указанным именем существует

строка1 операция строка2

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

== – равноNEQ– не равно

LSS– меньшеLEQ– меньше или равно

GTR– большеGEQ– больше или равно

Если строки 1 и 2 содержат только цифры, то обе строки преобразуются в числа, после чего выполняется сравнение чисел

DEFINED переменная

Истинно, если указанная переменная среды существует

Не рекомендуется использовать устаревшую и провоцирующую ошибки конструкцию “IF ERRORLEVEL число”, вместо этого лучше применять более удобные формы: “IF %ERRORLEVEL%==число”, “IF %ERRORLEVEL% GEQ число” и т.п.

При использовании условного оператора, содержащего ELSE-часть, следует учитывать следующее. Ключевое словоELSEне должно размещаться с начала новой строки, оно должно стоять в той же строке, где заканчиваетсякоманда1. С другой стороны, многие команды рассматривают всю оставшуюся часть строки как свои параметры, при этом словоELSEтоже будет воспринято как параметр. Чтобы выйти из этого затруднения, можно воспользоваться круглыми скобками:

If условие (команда1

) ELSE команда2

      1. Приостановка выполнения пакетного файла до нажатия любой клавиши

PAUSE

      1. Переход в другой каталог с возможностью возврата

PUSHD [путь|..]

POPD

путь

Каталог, который следует назначить текущим

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

Использование пары команд PUSHD/POPDоблегчает, например, программирование рекурсивной обработки каталога с вложенными в него подкаталогами.

      1. Помещение комментариев в пакетные файлы

REM [текст]

      1. Сдвиг подставляемых параметров для пакетного файла

SHIFT [/n]

Команда вызывает уменьшение на единицу номеров, соответствующих всем позиционным параметрам. Бывший параметр %0перестает быть доступным, параметр%1становится параметром%0и т.д.

Если при вызове пакетного файла было указано больше 9 параметров, то «лишние» параметры становятся доступными после одной или нескольких команд SHIFT, когда их номера попадают в диапазон%0%9.

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

Ключ /nзадает начало сдвига параметров с номераn, гдеnможет быть от 0 до 8. Например, после выполнения команды “SHIFT /2” бывший параметр%3становится доступен как%2, параметр%4– как%3и т.д., а%0и%1остаются без изменений.