環境変数へ PATH を設定するのは慣れないとちょっと面倒です。また、自動実行中に行ってしまいたいこともあるでしょう。今回はディレクトリ を bat ファイルに ドラッグ アンド ドロップ するだけで、PATH に追加出来る bat ファイルを作成しました。この bat ファイルは引数としてフォルダを指定する利用もできます。
今回の bat で設定されるのは、ユーザーの環境変数です。SetX に パラメータ /m をつければシステム全体の環境変数にも登録可能なのです。しかし、管理者権限が必要で ドラッグ アンド ドロップだけでは完結しないので、本記事の対象外ですが「おまけ」として記載していますのでよかったら参考までに見ていってください。
環境変数(PATH)を設定する bat ファイル
bat ファイルは以下の様に記述しています。2 行目から 12 行目までは、エラーチェックです。14 行目で現在ユーザー環境変数のPATHを取得をおこない、15 行目ですでに登録されている PATH のチェックをしています。21 行目で環境変数へ登録をしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | @echo off set dirName=%1 IF "%dirName%" == "" ( echo フォルダをドラッグしてください。 echo. goto fin ) if not exist %1\ ( echo フォルダをドラッグしてください。 echo. goto fin ) FOR /F "TOKENS=1,2,*" %%I IN ('REG QUERY "HKEY_CURRENT_USER\Environment" /v "path"') DO IF "%%I"=="path" SET USERPATH=%%K echo "%USERPATH%" | find "%dirName%" >NUL if not ERRORLEVEL 1 goto nop :setpath echo %dirName% を ユーザー環境変数(PATH)に追加します。 echo. setx path "%dirName%;%USERPATH%" goto fin :nop echo %dirName% はすでに、ユーザー環境変数(PATH)に追加されています。 echo. :fin pause |
ダウンロード
上記の bat をコピペで利用してもらうか、以下からダウンロードできます。
ダウンロードしたzip を適当なところに解凍してください。解凍した setpath.bat に指定したいフォルダを ドラッグ アンド ドロップしてください。
実行結果
このバッチファイルに、設定したいフォルダをドラッグ アンド ドロップするだけです。実行結果は以下の様になります。
成功結果:
失敗結果(すでに登録済み):
失敗結果(ファイルをドラッグ/ダブルクリック):
おまけ
システムの環境変数の設定として利用したい場合は、以下の様に変更してコマンドプロンプトを管理者権限で立ち上げて、本 bat への引数としてパスを指定すればよいです。
具体的には、14行目のチェックと21行目の SetX の引数が変わっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | @echo off set dirName=%1 IF "%dirName%" == "" ( echo フォルダを指定してください。 echo. goto fin ) if not exist %1\ ( echo フォルダを指定してください。 echo. goto fin ) FOR /F "TOKENS=1,2,*" %%I IN ('REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v "path"') DO IF "%%I"=="path" SET SYSPATH=%%K echo "%SYSPATH%" | find "%dirName%" >NUL if not ERRORLEVEL 1 goto nop :setpath echo %dirName% を ユーザー環境変数(PATH)に追加します。 echo. setx path /m "%dirName%;%SYSPATH%" goto fin :nop echo %dirName% はすでに、ユーザー環境変数(PATH)に追加されています。 echo. :fin pause |