2016-03-21 6 views
0

私は仕事用PCでWindows 7を使用していて、Python27のアンインストールを完了しようとしています。env変数からのPython削除 - ひねりあり

私はcmdを開き、pathを入力した場合、私は、次のComputer > Properties > Advanced System Settings > Environment Variables.. > Pthにクリックした場合私はなぜ、私が見る価値が;C:\Python27\;C:\Python27\Scripts\;

が含まれていません;C:\Python27\;C:\Python27\Scripts\;

が含まれているのenv変数のリストを見ることができますこの不一致を見る? 1つはすべてのユーザーのためのパスですか、もう1つは私のためのパスですか?

パスのすべてのビューから;C:\Python27\;C:\Python27\Scripts\;を削除するにはどうすればよいですか? PSを使用してパスのセクションを削除するにはどうすればよいですか? (すべて削除することなく)

+1

はあなたが後にマシンを再起動しましたアンインストール? – Martin

+0

@Martin数回;私もregeditを使って、C:/ Python27のエントリを削除しました。 PowerShellを使ってこの 'path'文字列を編集するエレガントな方法がありますか?文字列の途中でセクションを削除することです。つまり、このビットを削除することです; C:\ Python27 \; C:\ Python27 \ Scripts \;' – whytheq

+0

@Martinはおそらく1つはマシンレベルのパスと他のユーザーレベルですか? Path env変数に2つの異なる値を設定できますか? – whytheq

答えて

1

明らかに、2つのPythonフォルダは、SYSTEM環境のPATH設定にリストされています。どちらの管理者として、その設定を編集したり、管理者権限で次のコマンドを実行します。

$python_paths = 'C:\Python27\', 'C:\Python27\Scripts\' 

$mpath = [Environment]::GetEnvironmentVariable('PATH', 'Machine') -split ';' | 
     Where-Object { $paths -notcontains $_ } 

[Environment]::SetEnvironmentVariable('PATH', ($mpath -join ';'), 'Machine') 

任意のPythonの2.7パスは、ワイルドカードの試合へWhere-Objectフィルタを変更削除するには:

... | Where-Object { $_ -notlike 'C:\Python27*' } 
+0

私はこのアプローチをとるだけです: '... | Where-Object {$ _ -notmatch 'Python27'} 'と私は正規表現の変種がどのように見えるかと思いました。 – Martin

+0

うーん... *正規表現の変種です。しかし、パス内のどこでも文字列 'python27 'と一致するので、私の好みにはあまりにも非特異的です。 –

+0

"管理者権限で" ... PSスクリプトを介して一時的な設定を追加して、これらの特権を自分自身に与えることができますか? – whytheq

関連する問題