233

Windows には次のsetxコマンドがあります。

Description:
    Creates or modifies environment variables in the user or system
    environment.

したがって、次のように変数を設定できます。

setx FOOBAR 1

そして、次のように値をクリアできます。

setx FOOBAR ""

ただし、変数は削除されません。レジストリに残ります:

フーバー

では、実際に変数を削除するにはどうすればよいでしょうか。

4

10 に答える 10

281

現在の環境から変数を削除するには(永続的ではありません):

set FOOBAR=

ユーザー環境から変数を完全に削除するには(これがデフォルトの場所ですsetx):

REG delete HKCU\Environment /F /V FOOBAR

変数がシステム環境で設定されている場合(たとえば、最初にを使用して設定した場合setx /M)、管理者として次のコマンドを実行します。

REG delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /F /V FOOBAR

注:上記のREGコマンドは既存のプロセス(および既存のプロセスからフォークされた一部の新しいプロセス)には影響しません。したがって、変更をすぐに有効にすることが重要な場合は、ログアウトして再度ログインするのが最も簡単で確実な方法です。または再起動します。これが選択肢ではない場合、またはさらに深く掘り下げたい場合は、ここにある他の回答のいくつかに、ユースケースに適したいくつかの優れた提案があります。

于 2012-11-04T20:52:54.350 に答える
15

私はCupawnTaeに同意します。

SETマスター環境への変更には役立ちません。

参考までに: システム変数が含まれていますHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment(ユーザー変数よりかなり長い)。

したがって、FOOBAR という名前のシステム変数の完全なコマンドは次のとおりです。

REG delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /F /V FOOBAR

(スペースを処理するために必要な引用符に注意してください。)

setxコマンドが削除構文をサポートしていないのは残念です。:(

PS: 責任を持って使用してください - パス変数を削除しても、私を責めないでください!

于 2014-05-14T20:28:39.627 に答える
6
setx FOOBAR ""

FOOBAR の値をヌル文字列にするだけです。(ただし、set"" を含むコマンドで表示されるため、二重引用符が文字列である可能性があります。)

私が使用した:

set FOOBAR=

その後、FOOBAR は set コマンドにリストされなくなりました。(ログオフは必要ありませんでした。)

Windows 7 32ビット、コマンドプロンプトを使用して、非管理者は私が使用したものです。( cmd またはWindows+Rではなく、異なる場合があります。)

ところで、作成した後、作成した変数がレジストリのどこにも表示されませんでした。管理者としてではなく、 RegEditを使用しています。

于 2017-06-05T23:33:57.037 に答える