[ホーム] - [バッチファイル サンプル一覧] - [ユーザ向け環境変数あるいはシステム環境変数をセットする]

ユーザ向け環境変数あるいはシステム環境変数をセットする | Windows バッチファイル



問題


set コマンドで環境変数をセットしても、コマンドプロンプトを閉じるとセットした内容が消えてします。
新しいプロセスで複数のコマンドプロンプトを開いた場合でも共通して有効な変数を設定したいと思います。

解決方法


そのような場合は環境変数を使用すると、新たにコマンドプロンプトを開く場合でも変数が保持されます。環境変数はOSとして有効なのでどのコマンドプロンプトを開いても共通して使用できます。


サンプルコード集

以下は Windows 10 環境におけるサンプルコードと実行結果です。

以下は単に a に 1を代入しています。

サンプルコード:


setx sharedvariable 1

実行結果:


c:\>setx sharedvariable 1

成功: 指定した値は保存されました。



-m オプションを付加すると、「システム環境変数」として設定されます。

(注意)このコマンドを実行しても実行したコマンドプロンプトでは変数は有効とならないようです。
新たにコマンドプロンプトを開くと環境変数が有効になっているのが分かります。

他のコマンドプロンプトを開き set で確認すると前のコマンドプロンプトで開いた変数が設定されていることが分かります。


C:\Users\username>set | findstr sharedvariable
sharedvariable=1




サンプルコード:


setx sharedvariable 1 /m



実行結果:


c:\>setx sharedvariable 1 /m

成功: 指定した値は保存されました。



オプションで /a を付けないと以下の通り数字ではなく文字列と扱われます。

サンプルコード:

set /a a=1
set a=a+1
echo %a%

実行結果:


c:\>set /a a=1

c:\>set a=a+1

c:\>echo a+1
a+1







本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。)

[ホーム] - [バッチファイル サンプル一覧]