Enabledelayedexpansion

Включает расширения переменной среды с задержкой до появления соответствующей команды endlocal, вне зависимости от состояния расширений командного процессора перед командой setlocal.

Disabledelayedexpansion

Выключает расширения переменных среды с задержкой до появления соответствующей команды endlocal, вне зависимости от состояния расширений командного процессора перед командой setlocal.

/?

Отображает справку в командной строке.

Примечания

  • Использование команды setlocal

Команда setlocal не выполняется при использовании вне сценария или пакетного файла.

  • Изменение переменных среды

Используйте команду setlocal для изменения переменных среды при выполнении пакетного файла. Изменения среды, выполненные после setlocal, являются локальными для пакетного файла. Cmd.exe восстанавливает первоначальные Параметры при обнаружении команды endlocal или достижении конца пакетного файла.

  • Допускается использование нескольких команд setlocal и endlocal в пакетной программе (так называемых, вложенных команд).
  • Проверка расширений командного процессора в пакетных файлах

Команда setlocal устанавливает переменную ERRORLEVEL. При выполнении аргументов {enableextension | disableextensions} или {enabledelayedexpansion | disabledelayedexpansion} переменная ERRORLEVEL имеет значение ноль (0). В противном случае ее значение — 1. Этим можно воспользоваться в пакетных программах для проверки доступности расширений командного процессора, например:

verify other 2>nul

setlocal enableextensions

if errorlevel 1 echo Включение расширений командного процессора невозможно

Так как команда cmd не устанавливает значение переменной ERRORLEVEL, когда расширения командного процессора отключены, команда verify устанавливает переменную ERRORLEVEL в ненулевое значение при использовании этой команды с недопустимым аргументом. Если используется команда setlocal с аргументами {enableextension |disableextensions} или {enabledelayedexpansion | disabledelayedexpansion} и значение переменной ERRORLEVEL не 1, расширения командного процессора недоступны.

Примеры

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

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

Setver

Устанавливает номер версии MS-DOS, который подсистема MS-DOS сообщает программам. Использованная без параметров, команда setver выводит таблицу текущих версий.

Синтаксис

setver [диск:путь] [имя_файла n.nn]

setver [диск:путь] [имя_файла [/delete [/quiet]]

Для вывода сведений о текущих назначениях версий используется следующий формат:

setver [диск:путь]

Параметры

[диск:путь

Указывает путь к файлу Setver.exe.

имя_файла

Задает имя файла программы (.exe или .com), которое будет добавлено к таблице назначения версий. Использование подстановочных знаков (* и ?) не допускается.

n.nn

Задает версию MS-DOS (например, 3.3 или 4.01), которую подсистема MS-DOS сообщает заданной программе.

/delete

Удаляет сведения о данной программе из таблицы назначения версий. Так же можно использовать параметр /d.

/quiet

Скрывает сообщение, которое обычно выводится при удалении записи из таблицы назначения версий.

/?

Отображает справку в командной строке.

Примечания

  • Использование таблицы назначения версий

Многие программы, которые были разработаны для использования с предыдущими версиями MS-DOS, будут корректно работать с системой Windows XP. Однако, в некоторых случаях, программа может не работать до тех пор, пока ее имя не будет включено в таблицу назначения версий. Эта таблица сообщает программе, что она работает с той версией MS-DOS, для которой она была разработана, несмотря на то что она в действительности работает с подсистемой MS-DOS. Воспринимая версию MS-DOS 5.0 как более старую, программа может работать корректно. Однако, использование команды setver не решит проблему с теми программами, которые несовместимы с системой Windows XP.

  • Загрузка таблицы назначения версий в память

Перед использованием команды setver таблица назначений версий должна быть загружена в память с помощью команды device в файле Config.nt.

  • Обновление таблицы назначения версий

После обновления таблицы назначения версий (добавления или удаления записей) должен быть запущен новый экземпляр интерпретатора командной строки для считывания обновленной таблицы назначения версий.

  • Обновление существующих записей

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

  • Коды завершения команды setver

Чтобы проанализировать в пакетной программе коды завершения, выведенные командой setver, используйте параметр уровень_ошибки в командной строке if. В следующей таблице перечислены коды завершения с кратким описанием.

Код завершения Описание
Программа setver успешно закончила работу
Задан неверный ключ командной строки
Задано неверное имя файла
Недостаточно системной памяти для работы команды
Задан недопустимый формат номера версии
Программа setver не может найти заданную запись в таблице назначения версий
Программа setver не может найти файл Setver.exe
Задан недопустимый диск
Задано слишком много параметров команды
Отсутствует параметр команды setver
Программа setver обнаружила ошибку при чтении файла Setver.exe
Файл Setver.exe поврежден
Заданный файл Setver.exe не поддерживает таблицу назначения версий
В таблице назначения версий недостаточно места для новой записи
Программа setver обнаружила ошибку при записи в файл Setver.exe

Примеры

Для запуска Myprog.exe, файла, который выполняется с MS-DOS версии 3.30, создайте запись в таблице назначения версий, в результате чего, Myprog.exe интерпретирует подсистему MS-DOS, как версию 3.30, вводом следующей команды:

Наши рекомендации