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} または {enabledelayedexpansion | disabledelayedexpansion} を渡した場合、ERRORLEVEL 変数は 0 (ゼロ) に設定されます。 それ以外の場合は、 1 に設定されます。 バッチ スクリプトでこの情報を使用すると、次の例で示すように拡張機能は、使用できるかどうかを決定します。

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

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

その他のリファレンス