- •Пакетные файлы
- •Общие правила оформления пакетных файлов
- •Символы условной обработки
- •% (Замещаемый параметр)
- •Содержание лабораторной работы
- •Приложение 1 Применение команд операционной системы
- •Копирование нескольких файлов
- •Команды, используемые в пакетных файлах
- •Примеры
- •Примечания
- •Примеры
- •If [/I] строка1 оп_сравнения строка2 команда [else выражение]
- •If cmdextversion число команда [else выражение]
- •If defined переменная команда [else выражение]
- •Примечания
- •Примеры
- •Примеры
- •Примеры
- •Примечания
- •Примеры
- •Примечания
- •Примеры
Примеры
Локальное изменение переменных среды в пакетном файле может быть использовано следующим образом:
rem *******Начало комментария**************
rem Эта программа запускает приложение superapp в сети,
rem записывает вывод в файл и загружает этот файл в программу
rem Блокнот.
rem *******Конец комментария **************
@echo off
setlocal
path=g:\programs\superapp;%path%
call superapp>c:\superapp.out
endlocal
start notepad c:\superapp.out
Проверка расширений командного процессора в пакетных файлах
Команда setlocal устанавливает значение errorlevel равным нулю (0), если указан один из двух допустимых аргументов, и единице (1) — в противном случае. Этим можно воспользоваться в пакетных программах для проверки доступности расширений командного процессора, как в приведенном ниже примере:
verify other 2>nul
setlocal enableextensions
if errorlevel 1 echo Разрешение расширений командного процессора невозможно
Поскольку cmd не устанавливает значение errorlevel, если расширения командного процессора запрещены или используются более старые версии Cmd.exe, команда verify с недопустимым аргументом устанавливает errorlevel в ненулевое значение. Если команда setlocal, разрешающая расширения, не устанавливает значение errorlevel в единицу, то расширения командного процессора недоступны
Используйте команду setlocal для изменения переменных среды во время исполнения пакетного файла. Изменения среды, выполненные после setlocal, являются локальными для пакетного файла. Предыдущие установки восстанавливаются или после выполнения команды endlocal, или после достижения конца пакетного файла.
Допускается использование нескольких (вложенных).команд setlocal и endlocal в пакетной программе
Endlocal
Окончание использования локального окружения в пакетной программе, восстановление значений переменных среды, имевшихся до выполнения соответствующей команды setlocal.
В конце пакетного файла присутствует неявная команда endlocal.
Если расширения командного процессора разрешены (используются в Windows 2000 по умолчанию), команда endlocal восстанавливает состояния разрешения/запрещения расширений команд, существовавшие до выполнения соответствующей команды setlocal.
Пример
Локальное изменение переменных среды в пакетном файле может быть использовано следующим образом:
@echo off
rem Эта программа запускает приложение superapp в сети,
rem записывает вывод в файл и загружает этот файл в программу
rem Блокнот.
setlocal
path=g:\programs\superapp;%path%
call superapp>c:\superapp.out
endlocal
start notepad c:\superapp.out
Shift
Изменение положения замещаемых переменных в пакетных файлах.
shift
Если расширения командного процессора разрешены (используются в Windows 2000 по умолчанию), команда shift поддерживает ключ /n, который указывает команде начинать сдвиг с n-го аргумента, где n — число от нуля до восьми. Например,
SHIFT /2
сдвинет %3 на %2, %4 на %3 и т. д. %0 и %1 останутся неизменными.
