web-dev-qa-db-ja.com

コマンドプロンプト - 実行中のバッチファイルにのみ設定パスを追加する方法

基本的に、私は自分のコントロールパネルを通過してパス変数を変更できることを知っています。しかし、私はバッチプログラミングを介して一時的なパスが含まれている方法があるかどうか疑問に思いますか?そのようにそれはそのバッチファイル実行の間にだけ使われます。私のバッチファイルを使用するためだけに他の人に参加してもらい、パス変数を変更したくはありません。

155
michael

他の環境変数と同様に、 SET を使用します。

SET PATH=%PATH%;c:\whatever\else

最初に小さな安全性チェックを組み入れたい場合は、新しいパスが最初に存在するかどうかを確認してください。

IF EXIST c:\whatever\else SET PATH=%PATH%;c:\whatever\else

そのバッチファイルに対してローカルにしたい場合は、 setlocal を使用します。

setlocal
set PATH=...
set OTHERTHING=...

@REM Rest of your script

setlocal/endlocalのドキュメントを注意深く読み、そのサイトの他の参考文献を見てください。 - 関数 も非常におもしろく、構文は扱いにくいです。

構文 ページを見てください。

266
Mat

その通りですが、恒久的に変更するのではなく、現在のコマンドプロンプトに対してだけです。恒久的に変更したい場合は、たとえば次のようにします。

setx ENV_VAR_NAME "DESIRED_PATH" /m

これは恒久的にそれを変更します、そして、そうあなたは別のバッチスクリプトによってそれを上書きすることができます。

16
dumbak

重要な詳細があります。

set PATH="C:\linutils;C:\wingit\bin;%PATH%"

動作しませんが

set PATH=C:\linutils;C:\wingit\bin;%PATH%

動作します。違いは引用符です!

14