Windows のコマンド ラインでは、印刷前にecho %PATH%
システム変数とユーザー変数をPATH
このような順序で結合するようです。これは妥当なようですが、システム変数のみ (または、ユーザー変数のみ) を印刷できるようにもしたいと思います。
これはecho
単なる例であり、他のコマンドでも機能することを期待しています。
簡単にセット/M
コマンドを発行するときにフラグを使用するか使用しないかによってSETX
:
SETX PATH "D:\some\user\path"
^ sets the user variable PATH
SETX PATH "C:\some\system\path" /M
^ sets the system-wide variable PATH
しかし評価する %PATH%
このような方法はそれほど簡単ではないようです(あるいは不可能ですらあります)。単に入力すると%PATH%
次のようになります。
C:\some\system\path;D:\some\user\path
C:\some\system\path
のみ(または のみD:\some\user\path
)を取得することは可能でしょうか?
これら 2 つを簡単に区別できる GUI インターフェイスが存在することは知っています。ただし、このタスクはコマンド ラインのみを使用して実行したいと考えています。
答え1
レジストリ値はいつでも直接クエリできます。
for /f "skip=2 tokens=2*" %a in ('reg query HKCU\Environment /v PATH') do @echo %b
for /f "skip=2 tokens=2*" %a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PATH') do @echo %b