Заметки
Если условие, заданное в команде if, выполняется, будет выполнена команда, следующая за условием. Если условие не выполняется, команда, заданная в операторе if, пропускается, а управление переходит к команде оператора else, если она задана.
Когда программа завершается, она возвращает код завершения. С помощью параметра errorlevel коды завершения можно использовать в качестве условий.
Использование команды defined переменная
При использовании команды defined переменная добавляются следующие три переменные: %errorlevel%, %cmdcmdline% и %cmdextversion%.
%errorlevel% замещается строковым представлением текущего значения errorlevel, если только уже не существует переменная среды с именем ERRORLEVEL. В этом случае будет использовано ее значение. В следующем примере показано использование значения errorlevel после выполнения пакетной программы:
goto answer%errorlevel%
:answer0
echo Код возврата программы равен 0
:answer1
echo Код возврата программы равен 1
goto end
:end
echo Готово!
Операторы сравнения оп_сравнения также можно использовать следующим образом:
if %errorlevel% LEQ 1 goto okay
%cmdcmdline% замещается исходной командной строкой, переданной Cmd.exe, до ее обработки в Cmd.exe, если только уже не существует переменная среды с именем cmdcmdline. В этом случае будет использовано значение cmdcmdline.
%cmdextversion% замещается строковым представлением текущего значения cmdextversion, если только уже не существует переменная среды с именем CMDEXTVERSION. В этом случае будет использовано ее значение.
Использование оператора else
Оператор else должен размещаться в той же строке, что и команда if. Пример:
IF EXIST имя_файла. ( del имя_файла. ) ELSE ( echo имя_файла. отсутствует. )
Приведенный ниже пример не будет работать, поскольку команда del должна заканчиваться новой строкой:
IF EXIST имя_файла. del имя_файла. ELSE echo имя_файла. отсутствует
Приведенный ниже пример не будет работать, поскольку команда else должна находиться в той же строке, что и команда if:
IF EXIST имя_файла. del имя_файла. ELSE echo имя_файла. отсутствует
Если необходимо разместить всю инструкцию в одной строке, можно использовать следующую правильную форму исходной инструкции:
IF EXIST имя_файла. (del имя_файла.) ELSE echo имя_файла. отсутствует
Команда install не может применяться для загрузки программ, использующих переменные окружения, клавиши быстрого вызова или требуют наличия командного интерпретатора Cmd.exe для обработки критических ошибок.
Данная команда доступна только на компьютерах с адаптерами, настроенными для автоматического получения IP-адресов. Это позволяет пользователям определять, какие значения конфигурации были получены с помощью DHCP, APIPA или другой конфигурации.
В именах адаптеров, задаваемых для команды ipconfig, поддерживается использование подстановочного знака звездочки (*) для задания имен, начинающихся с указанной строки или содержащих указанную строку. Например, имя Подкл* будет включать все адаптеры, начинающиеся со строки «Подкл», а имя *сет* — все адаптера, содержащие строку «сет».
Эта команда доступна, только если в свойствах сетевого адаптера в объекте Сетевые подключения в качестве компонента установлен протокол Интернета (TCP/IP).
Команду Ipseccmd нельзя использовать для настройки правил на компьютерах, работающих под управлением Windows2000.
Если не задан параметр имя_компьютера, правило будет применено к локальному компьютеру.
Если используется параметр имя_компьютера, его необходимо задавать перед всеми остальными параметрами, а также обладать правами администратора на компьютере, в политику которого требуется добавить правило.
Для параметра -f определение фильтра представляет собой один или несколько фильтров, разделенных пробелами и представленных в следующем формате:
исходный_адрес/исходная_маска:исходный_порт=конечный_адрес/конечная_маска:конечный_порт:протокол
Значения исходная_маска, исходный_порт, конечная_маска и конечный_порт являются необязательными. Если они не указаны, в фильтре будет использована маска 255.255.255.255 и все порты.
Значение протокол является необязательным. Если оно не указано, в фильтре будут использованы все протоколы. Если протокол задан, необходимо также задать порт либо поставить перед протоколом два двоеточия (::). (См. первый пример для динамического режима.) Протокол должен быть последним элементом фильтра. Можно использовать следующие обозначения протоколов: ICMP, UDP, RAW или TCP.
Заменяя знак «равно» (=) знаком «плюс» (+), можно создавать отраженные фильтры.
Значения исходный_адрес/исходная_маска или конечный_адрес/конечная_маска можно заменять значениями из следующей таблицы.
0 | Локальный адрес или локальные адреса |
* | Любой адрес |
DNS-имя | DNS-имя домена. Если DNS-имени сопоставлено несколько адресов, оно не учитывается. |
Код GUID | Глобальный уникальный идентификатор (GUID) интерфейса локальной сети в форме {12345678-1234-1234-1234-123456789ABC}. Задание кода GUID не поддерживается при использовании параметра -n в статическом режиме. |
Задав определение фильтра default, можно включить правило отклика по умолчанию.
Разрешающий фильтр можно задать, заключив определение фильтра в скобки. Блокирующий фильтр можно задать, заключив определение фильтра в квадратные скобки ([ ]).
Для параметра -w атрибут тип должен иметь значение reg для выбора реестра локального или удаленного компьютера либо значение ds для выбора Active Directory.
Использование статического режима отличается от использования динамического режима в одном отношении. В динамическом режиме разрешающие и блокирующие фильтры задаются в списке_фильтров, следующем за параметром -f. В статическом режиме разрешающие и блокирующие фильтры задаются в списке_политик_согласования, следующем за параметром -n. Вдобавок к параметрам динамического режима, описанным в списке_политик_согласования, в статическом режиме также можно использовать параметры block, pass и inpass. В следующей таблице приведена таблица со списком и описанием этих параметров.
block | Остальные политики в списке_политик_согласования не учитываются, а все фильтры считаются блокирующими. |
pass | Остальные политики в списке_политик_согласования не учитываются, а все фильтры считаются разрешающими. |
inpass | Фильтры входящего трафика позволяют сначала устанавливать небезопасное подключение, но все последующие ответы будут безопасными с использованием IPSec. |
Команду Ipseccmd нельзя использовать для отображения данных IPSec на компьютерах, работающих под управлением Windows2000.
Если параметр имя_компьютера не задан, отображаются сведения о локальном компьютере.
Если используется параметр имя_компьютера, его необходимо задавать перед всеми остальными параметрами, а также обладать правами администратора на компьютере, данные которого требуется просмотреть.