次の方法で共有


ローカル環境設定

バッチ ファイル内の環境変数のローカライズを開始します。 ローカライズは、一致する endlocal コマンドが検出されるか、バッチ ファイルの末尾に達するまで続行されます。

構文

setlocal [enableextensions | disableextensions] [enabledelayedexpansion | disabledelayedexpansion]

パラメーター

パラメーター 説明
EnableExtensions setlocal コマンドが実行される前の設定に関係なく、一致する endlocal コマンドが検出されるまで、コマンド拡張機能を有効にします。
DisableExtensions setlocal コマンドが実行される前の設定に関係なく、一致する endlocal コマンドが検出されるまで、コマンド拡張機能を無効にします。
enabledelayedexpansion setlocal コマンドが実行される前の設定に関係なく、一致する endlocal コマンドが検出されるまで、遅延環境変数の拡張を有効にします。
DisableDelayed拡張 setlocal コマンドが実行される前の設定に関係なく、一致する endlocal コマンドが検出されるまで、遅延環境変数の展開を無効にします。
/? コマンド プロンプトにヘルプを表示します。

注釈

  • スクリプトまたはバッチ ファイルの外部で setlocal を使用する場合、効果はありません。

  • setlocal を使用して、バッチ ファイルを実行するときに環境変数を変更します。 setlocal の実行後に行われた環境の変更は、バッチ ファイルに対してローカルになります。 Cmd.exe プログラムは、 endlocal コマンドが発生したとき、またはバッチ ファイルの末尾に達したときに、以前の設定を復元します。

  • バッチ プログラムには、複数の setlocal コマンドまたは endlocal コマンド (つまり、入れ子になったコマンド) を含めることができます。

  • setlocal コマンドは ERRORLEVEL 変数を設定します。 {enableextensions | disableextensions} または {enabledelayedexpansion | disabledelayedexpansion} を渡すと、ERRORLEVEL 変数は 0 (ゼロ ) に設定されます。 それ以外の場合は、1 に設定 されます。 次の例に示すように、この情報をバッチ スクリプトで使用して拡張機能が使用可能かどうかを判断できます。

    verify other 2>nul
    setlocal enableextensions
    if errorlevel 1 echo Unable to enable extensions
    

    コマンド拡張が無効な場合、 cmd は ERRORLEVEL 変数を設定しないため、 無効 な引数を指定して使用すると、verify コマンドは ERRORLEVEL 変数を 0 以外の値に初期化します。 また、引数 {enableextensions | } または {enabledelayedexpansion | } で setlocal コマンドを使用し、ERRORLEVEL 変数を 1 に設定しない場合、コマンド拡張は使用できません。

例示

バッチ ファイル内の環境変数をローカライズするには、次のサンプル スクリプトに従います。

rem *******Begin Comment**************
rem This program starts the superapp batch program on the network,
rem directs the output to a file, and displays the file
rem in Notepad.
rem *******End Comment**************
@echo off
setlocal
path=g:\programs\superapp;%path%
call superapp>c:\superapp.out
endlocal
start notepad c:\superapp.out