WindowsCMD環境変数の使用方法

公開: 2022-06-28

Windows10および11のロゴ

コマンドプロンプト(CMD)を使用して環境変数を追加または変更するのは簡単ですが、環境変数を削除するのははるかに複雑です。 ここにあなたがそれをすることができるいくつかの異なる方法があります。

目次

環境変数を追加または変更する方法
環境変数を一時的に設定する
環境変数を永続的に設定する
環境変数を削除する方法
環境変数を一時的に削除する
環境変数を完全に削除する

環境変数を追加または変更する方法

まず、管理者としてコマンドプロンプト(CMD)を起動する必要があります。 [スタート]をクリックし、検索ボックスに「cmd」と入力して、[管理者として実行]をクリックします。

注:ユーザー環境変数は通常のコマンドプロンプトウィンドウで設定または変更できますが、システム全体の環境変数を変更するには、コマンドプロンプトを昇格させる必要があります。

環境変数を設定するには、2つの異なる方法があります。

環境変数を一時的に設定する

1つ目は、setコマンドを使用します。 Setは、それが定義されたプロセス内でのみ環境変数を定義します。つまり、変数は、開いているウィンドウまたはそれを含むスクリプトでのみ機能します。

次に例を示します。LifeAnswerVarという名前の環境変数を作成し、値を42に設定するとします。コマンドはset LifeAnswerVar=42ます。

そのウィンドウが開いている間、LifeAnswerVarの値は42になります。

設定されたlifevar=42のコマンドプロンプト

閉じると、環境変数とその値が削除されます。

LifeAnswerVarが定義されていない新しいCMDウィンドウ。

既存のWindowsシステム変数を一時的に変更する場合は、まったく同じ方法が機能します。 あなたがする必要があるのは、LifeAnswerVarの代わりに変更したいシステム変数と42の代わりに割り当てたい値を置き換えることです。

たとえば、TMPフォルダーをC:\ Exampleフォルダーに移動する場合は、コマンドset TMP=C:\"Example Folder"を入力します。

TMPフォルダがサンプルフォルダに移動しました

最初の行であるsetTMPは、 set TMPの現在の値を示しています。 2行目は、TMPに新しい値を割り当てます。 3行目は、変更されたことを確認します。

環境変数を永続的に設定する

2番目の方法はsetxを使用します。 Setxは、Windows環境変数を永続的に定義します。 それらはウィンドウ間および再起動間で存続し、Windowsレジストリに書き込まれます。 これらの環境変数は、特定のユーザー用に定義することも、システム全体で使用するために定義することもできます。

コマンドsetx ExVar1 Tomato /mは、ExVar1という名前の新しい環境変数を作成し、それに値「Tomato」を割り当てます。 / m引数は、現在のユーザーだけでなく、システム全体で新しい変数を指定する必要があることを指定します。

コマンドプロンプトで定義されたExVar1

まったく同じコマンドを使用して、既存の環境変数を変更します。変更する変数の名前をExVar1に置き換えます。

注: setxを使用して変数を変更し、setを使用して変数の値を表示する場合、新しいコマンドプロンプトウィンドウが開くまで、setは正しい値を表示しません。

ユーザー環境変数を追加または変更する場合は、コマンドから/m引数を省略してください。

環境変数を削除する方法

環境変数の削除は、環境変数を追加または変更するよりも少し難しいです。

注:変数の追加と同様に、ユーザー環境変数は通常のコマンドプロンプトウィンドウで削除できますが、システム全体の環境変数を削除するには、昇格されたコマンドプロンプトが必要です。

環境変数を一時的に削除する

スクリプト、PowerShellウィンドウ、コマンドプロンプトウィンドウなど、現在のプロセスの環境変数を一時的に削除する場合は、setコマンドを使用できます。 必要なのは、変数に値を割り当てないことだけです。

たとえば、システム全体の環境変数に変数定義ExVar1=Tomatoがあり、特定のプロセスでそれを無視したい場合はどうでしょうか。 コマンドプロンプトにset ExVar1=と入力するか、その行をスクリプトに含めることができます。 スクリプトの実行中、または新しいコマンドプロンプトウィンドウを開くまで、変数は何も設定されません。

ExVar1は一時的に空白になりました。

環境変数を完全に削除する

環境変数を完全に削除するのは少し複雑です—それを行うにはregを使用する必要があります。

警告: Regは、レジストリエディタのコマンドラインバージョンです。 注意して続行する必要があります。タイプミスにより、重要なものを誤って削除してしまう可能性があります。 編集中のレジストリの一部をバックアップすることも問題ありません。

個々のユーザーの環境変数は、 HKEY_CURRENT_USER\Environmentに保存されます。 システム全体の環境変数は、 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environmentの他の場所に保存されます。

ExVar1=Tomatoの例を使用してみましょう。 ExVar1環境変数はシステム全体で定義されました。つまり、HKEY_CURRENT_USERディレクトリではなくHKEY_LOCAL_MACHINEディレクトリにあります。 具体的には、サブキーへのパスは次のとおりです。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\ExVar1

注:このパスにはスペースが含まれています。 コマンドラインインターフェイスに入力されたパスにスペースがある場合は常に、パスを引用符で囲む必要があります。そうしないと、正しく実行されない可能性が非常に高くなります。

次に、 reg delete必要があります。 以下のコマンドでは、ExVar1の代わりに変数名を使用する必要があることに注意してください。

reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\" /f /v ExVar1

そこにはたくさんあるので、少し分解してみましょう。

  • reg delete —使用しているアプリケーション(reg)とコマンド(delete)を定義します
  • "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\" —キーを探す場所をregdeleteに指示します
  • / f —確認を求めずにキーを削除するようにregdeleteに指示します
  • / v —regdeleteに削除する特定のサブキーが与えられることを通知します
  • ExVar1 —削除するサブキーの名前

個々のユーザーの環境変数を削除することは、パスが異なることを除いて、システム全体の変数を削除することとまったく同じです。 ExVar1がユーザー環境変数の場合、それを削除するコマンドは次のようになります。

reg delete HKEY_CURRENT_USER\Environment /f /v ExVar1

環境変数を削除するコマンドが成功した場合は、コマンドプロンプトに「操作が正常に完了しました」と表示されます。

ユーザー環境変数からExVar1を削除するために使用されるRegdelete

このような環境変数を削除するときはいつでも、explorer.exeを再起動する必要があります。 Explorer.exeを手動で再起動することも、コンピューター全体を再起動することもできます。 どちらも機能し、変更は再起動後すぐに有効になります。