setlocal

バッチ ファイルで環境変数のローカライズを開始します。 ローカライズが一致するまで endlocal コマンドが見つかるまたはバッチ ファイルの末尾に到達します。

構文

setlocal [enableextensions | disableextensions] [enabledelayedexpansion | disabledelayedexpansion]

パラメーター

パラメーター 説明
使って 一致するまでコマンド拡張機能を有効 endlocal する前に設定に関係なく、コマンドが発生しました、 setlocal コマンドが実行されました。
disableextensions 一致するまでコマンド拡張機能を無効に endlocal する前に設定に関係なく、コマンドが発生しました、 setlocal コマンドが実行されました。
enabledelayedexpansion により、一致するまで遅延環境変数の拡張 endlocal する前に設定に関係なく、コマンドが発生しました、 setlocal コマンドが実行されました。
disabledelayedexpansion 一致するまで遅延環境変数の拡張を無効に endlocal する前に設定に関係なく、コマンドが発生しました、 setlocal コマンドが実行されました。
/? コマンド プロンプトにヘルプを表示します。

解説

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

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

  • 1 つ以上を持つことができます setlocal または endlocal コマンド バッチ プログラム (つまり、入れ子になったコマンド) を実行します。

  • Setlocal ERRORLEVEL 変数を設定します。 渡した場合 {使ってdisableextensions} または {enabledelayedexpansiondisabledelayedexpansion}、ERRORLEVEL 変数に設定されている 0 (ゼロ)。 それ以外の場合は、1 に設定されます。 バッチ スクリプトでこの情報を使用すると、次の例で示すように拡張機能は、使用できるかどうかを決定します。

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

    Cmd コマンド拡張機能を無効にすると、ERRORLEVEL 変数を設定しない、 確認 に無効な引数を使用する場合、コマンドを 0 以外の値を ERRORLEVEL 変数を初期化します。 またを使用する場合、 setlocal コマンドの引数に {使ってdisableextensions} または {enabledelayedexpansiondisabledelayedexpansion} と、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

その他のリファレンス