setlocal
- help setlocal
Output:
バッチ ファイルで環境変更のローカル化を開始します。SETLOCAL を実行した後で
変更した環境設定は、そのバッチ ファイルだけで有効です。前の設定を復元するときは
ENDLOCAL を実行しなければなりません。バッチ スクリプトの終わりに達したとき、
暗示的な ENDLOCAL が、そのバッチ スクリプトによって発行されたすべての未完了の
SETLOCAL コマンドのために実行されます。
SETLOCAL
コマンド拡張機能を有効にすると、SETLOCAL は次のように変更されます:
SETLOCAL バッチ コマンドは、オプション引数を受け取ることができます:
ENABLEEXTENSIONS / DISABLEEXTENSIONS
は、コマンド処理機能を有効または無効にできます。これらの
引数は、CMD /E:ON または /E:OFF スイッチよりも優先されます。
詳細については、CMD /? を参照してください。
ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION
は、遅延環境変数の展開を有効または無効にできます。
これらの引数は、CMD /V:ON または /V:OFF スイッチよりも優先します。
詳細については、CMD /? を参照してください。
これらの変更は、SETLOCAL コマンドの実行前の設定にかかわらず、対応する
ENDLOCAL コマンドを実行するまで継続されます。
SETLOCAL コマンドに引数を指定すると、ERRORLEVEL の値が設定されます。
2 つの有効な引数が指定された場合は 0、指定されない場合は 1 になります。
この機能をバッチ スクリプトで使って、拡張機能が利用可能かどうかを判断
することができます。それには、次のように入力します:
VERIFY OTHER 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 echo 拡張機能を有効にできません
この方法が使えるのは、古いバージョンの CMD.EXE では、SETLOCAL は
ERRORLEVEL の値を設定しないためです。VERIFY コマンドに誤った引数を指定すると、
ERRORLEVEL の値は 0 以外の値に初期化されます。
Begins localization of environment changes in a batch file. Environment
changes made after SETLOCAL has been issued are local to the batch file.
ENDLOCAL must be issued to restore the previous settings. When the end
of a batch script is reached, an implied ENDLOCAL is executed for any
outstanding SETLOCAL commands issued by that batch script.
SETLOCAL
If Command Extensions are enabled SETLOCAL changes as follows:
SETLOCAL batch command now accepts optional arguments:
ENABLEEXTENSIONS / DISABLEEXTENSIONS
enable or disable command processor extensions. These
arguments takes precedence over the CMD /E:ON or /E:OFF
switches. See CMD /? for details.
ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION
enable or disable delayed environment variable
expansion. These arguments takes precedence over the CMD
/V:ON or /V:OFF switches. See CMD /? for details.
These modifications last until the matching ENDLOCAL command,
regardless of their setting prior to the SETLOCAL command.
The SETLOCAL command will set the ERRORLEVEL value if given
an argument. It will be zero if one of the two valid arguments
is given and one otherwise. You can use this in batch scripts
to determine if the extensions are available, using the following
technique:
VERIFY OTHER 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 echo Unable to enable extensions
This works because on old versions of CMD.EXE, SETLOCAL does NOT
set the ERRORLEVEL value. The VERIFY command with a bad argument
initializes the ERRORLEVEL value to a non-zero value.
Return Code: 1