重複の可能性:
環境変数を有効にする ENDLOCAL
「遅延拡張ローカル」モードを使用する Windows バッチ スクリプトの外部で変数の値を保持する方法は?
次のようなバッチファイルがあります。
REM I need to use SETLOCAL so as not to pollute the environment
REM with any variables used to implement the logic in this script
SETLOCAL
SET I_DONT_WANT_THIS_VARIABLE_TO_LEAK_OUTSIDE=c:\
REM BUT, there is this one change to the environment I want to make sticky:
PATH %PATH%;%I_DONT_WANT_THIS_VARIABLE_TO_LEAK_OUTSIDE%
スクリプトは、バッチ ファイルが実行しSETLOCAL
たいことから環境を分離するために使用しますが、これは問題を引き起こします。バッチ ファイルが終了します)。また、パスを設定する前に呼び出すこともできません。これは、環境を元の状態に復元し、変数の値を一掃して、その値をパスに追加できないためです。SETLOCAL
ENDLOCAL
効果を無視してパスを設定する方法はありSETLOCAL
ますか? または、呼び出し時に変数の値が消去されないように明示的に保持するトリックはありますENDLOCAL
か?
一時ファイルをバリアをバイパスできる容器として使用できることは承知していますENDLOCAL
が、より洗練されたソリューションを歓迎します。