Deaktivieren/aktivieren Sie einen bestimmten Pfad aus der PATH-Umgebungsvariable

Ich suche nach einem Programm für Microsoft Windows 7, mit dem der Benutzer einen bestimmten Pfad aus der PATH-Umgebungsvariable bequem über eine GUI deaktivieren/aktivieren kann. Der Rapid Environment Editor eignet sich hervorragend zum Verwalten der PATH-Umgebungsvariable, verfügt jedoch meines Wissens nicht über diese Option (kann nur einen Pfad hinzufügen / entfernen).

Geben Sie hier die Bildbeschreibung ein

Die Funktion wäre der Funktion von CCleaner zum Deaktivieren / Aktivieren eines bestimmten Programms beim Start irgendwie ähnlich:

Geben Sie hier die Bildbeschreibung ein

Eine verwandte Frage für Windows 10: GUI-Editor für Windows-Umgebungsvariablen

Antworten (2)

BEARBEITEN : Path Managerfunktioniert überhaupt nicht gut -> https://superuser.com/questions/891899/issue-when-disabling-a-path-using-path-manager/892798#892798

Wie wäre es mit PATH Manager? Der Screenshot zeigt eine "aktive" Spalte.

Hast du diese Software benutzt? Hat es Ihnen gefallen? Welche Erfahrungen haben Sie gemacht? Tut diese "aktive" Spalte das, was Sie denken?
Danke Jack, das Programm sieht perfekt aus, aber leider muss ich jedes Mal, wenn ich einen Pfad aktiviere/deaktiviere, entweder den Computer neu starten oder einfach zu dem kleinen und unbequemen Windows-Bearbeitungsfeld gehen und dort auf OK klicken, damit die Änderung berücksichtigt wird ( superuser.com/q/891899/116475 ) :/

Nach einigem Suchen habe ich immer noch kein Programm gefunden , das das tut, was Sie wollen. Sie könnten jedoch ein PowerScript für Ihren Zweck erstellen. Dies kann als Ausgangspunkt verwendet werden:

#requires -version 2

param(
    [string] $AddedFolder,
    [bool] $ApplyImmediately = $true
)

$environmentRegistryKey = 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment'

$oldPath = (Get-ItemProperty -Path $environmentRegistryKey -Name PATH).Path

# See if a new folder has been supplied.

if (!$AddedFolder)
{
    Write-Warning 'No Folder Supplied. $ENV:PATH Unchanged'
    return
}

if ($ENV:PATH | Select-String -SimpleMatch $AddedFolder)
{
    Write-Warning 'Folder already within $ENV:PATH'
    return
}

$newPath = $oldPath + ’;’ + $AddedFolder

Set-ItemProperty -Path $environmentRegistryKey -Name PATH -Value $newPath

if ($ApplyImmediately)
{
    if (-not ("Win32.NativeMethods" -as [Type]))
    {
        # import sendmessagetimeout from win32
        Add-Type -Namespace Win32 -Name NativeMethods -MemberDefinition @"
   [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
   public static extern IntPtr SendMessageTimeout(
       IntPtr hWnd, uint Msg, UIntPtr wParam, string lParam,
       uint fuFlags, uint uTimeout, out UIntPtr lpdwResult);
"@
    }

    $HWND_BROADCAST = [IntPtr] 0xffff;
    $WM_SETTINGCHANGE = 0x1a;
    $result = [UIntPtr]::Zero

    # notify all windows of environment block change
    [Win32.Nativemethods]::SendMessageTimeout($HWND_BROADCAST, $WM_SETTINGCHANGE, [UIntPtr]::Zero, "Environment", 2, 5000, [ref] $result);
}

Quelle: http://poshcode.org/3537