何らかの理由で、特定のマシンでは、私のcmdプロセスはそれを起動した親プロセスからその環境変数を継承しません。代わりに、エクスプローラーから起動したときのように、「デフォルト」の環境設定に戻ります。
これを示す簡単な方法は、コマンドプロンプトを開いてset Path=C:\Windows\System32\
を実行し、次に同じプロンプトから別のcmd
プロセスを起動することです。その後、set Path
を実行して変数を表示できます。
これはである必要があります "C:\ Windows\System32"(起動プロセスから継承)ですが、私のマシンでは、環境のデフォルトに戻ります。
何が原因でしょうか?環境変数の動作に関するすべてのルールに違反しているようで、この1台のマシンにのみ影響します。
問題の原因は コマンドプロセッサのAutoRun設定 です。コマンドラインのこの小さな「機能」により、CMDプロセスが開始するたびに実行されるようにスクリプトを構成できます。
私の場合、何か(おそらくNVMWのインストール)が、既存の値を完全に無視して、まったく新しいPath
値を割り当てるスクリプトを登録していました。
HKCU\Software\Microsoft\Command Processor\Autorun
値を削除すると、コマンドラインが通常の動作に戻りました。