Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Eintrag in der Umgebungsvariable Path löschen

Mitglied: ahe

ahe (Level 1) - Jetzt verbinden

30.10.2007, aktualisiert 31.10.2007, 18685 Aufrufe, 4 Kommentare

Löschen eines Pfadeintrages aus der Umgebungsvariablen Path während eines Batchlaufs.

Hallo,

ich habe da ein Problem mit dem Löschen eines Eintrages in der Umgebungsvariablen Path während des Batchlaufs.

Dieses Löschen des Pfades ist Teil einer Deinstallationsroutine, die ein gewisser Softwarehersteller (nicht MS) vermurxt hat. Es werden nur ein paar Dateien und Registry-Einträge gelöscht, die Pfade, Umgebungsvariablen und weiteren störenden Verzeichnisse, Dateien und Registry-Einträge bleiben allerdings bestehen. Bei einer Aktualisierung müssen die genannten Dinge aber alle verschwinden, da die Anwendung ansonsten nicht korrekt instaliert wird bzw. dann zwei ggfs. verschiedene Suchpfade vorhanden sind!

Vorab: (Windows XP SP2)
Es ist kein Problem einen Pfadeintrag mit Hilfe der Tools setx.exe oder pathman.exe (aus den Windows RescourcKits oder Support Tools) zu löschen, z. B. mit:
pathman.exe /rs c:\gnuffz\murks; (ich ziehe pathman setx vor...)

Bei diesen Tools wird die Systemvariable dauerhaft in der Registry geändert, ist allerdings erst beim nächsten Start der Konsole aktiv.

Registry-Zweig:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Name: Path
Typ: Reg_SZ
Wert: c:\windows; c:\windows\sytem32;c:\gnuffz\murks;C:\WINDOWS\System32\Wbem; ...

Der gesuchte Pfad ist dabei als Variable Home_Dir der Anwendung ebenfalls gesetzt und kann daher auch als Parameter für pathman verwendet werden:
pathman.exe /rs %Home_Dir%\murks;

Jetzt zum eigentlichen Problem:
Mit Hilfe des folgenden Befehls schreibe ich den Inhalt der Pfadvariablen (path) ohne den misliebigen Eintrag c:\gnuffz\murks in eine Datei test.txt.
echo %path:c:\gnuffz\murks=% >test.txt

Dies funktioniert soweit, aber... ich möchte dies natürlich mit meinem Parameter von oben machen: %Home_Dir% (der Installationspfad ist manchmal etwas unterschiedlich... "c:\" oder "c:\program files" oder "c:\programme" oder ... )
Wenn es denn 'mal klappt, dann möchte ich die Datei auslesen und den Inhalt als neue Pfadvariable path setzen z. B. mit:
for /f %%i in ('type test.txt') do set path=%%i

Die folgenden Zeilen funktionieren alle nicht!
echo %path:%Home_Dir%\murks=% >test.txt
Ergebnis in test.txt:
%path:c:\gnuffz\murks=%

echo %path:!%Home_Dir%!\murks=% >test.txt
Ergebnis in test.txt: (der Eintrag wird nicht gelöscht!)
c:\windows; c:\windows\sytem32;c:\gnuffz\murks;C:\WINDOWS\System32\Wbem; ...

echo %path:!Home_Dir!\murks=% >test.txt
Ergebnis in test.txt: (der Eintrag wird nicht gelöscht!)
c:\windows; c:\windows\sytem32;c:\gnuffz\murks;C:\WINDOWS\System32\Wbem; ...

Vielleicht habt Ihr ja noch eine Idee, irgendetwas machei ich mit der "verzögerten Variablenexpansion" falsch...

(Schön wäre am Schluss noch, wenn es auch kein überschüssiges Semikolon mehr da wäre... aber das ist nur Kosmetik...)


mfg
Axel
Mitglied: Biber
30.10.2007 um 22:06 Uhr
Moin ahe,

noch zwei Versuche mehr, dann hättest Du es herausbekommen...

So herum fünktioniert es (bei mir am CMD-Prompt) schön sichtbar:
01.
>@echo !path:%homedir%=@@@@@@@@@@@@@@@@@@@@!
Entsprechend in Deinem Batch mit...
01.
@echo off & Setlocal EnableDelayedExpansion 
02.
..... 
03.
:: .... und eigentlich dieselbe Zeile, also ohne mehr % oder !....  
04.
echo !path:%homedir%\Murks=@@@@@@@@@@@@@@@@@@@@! 
05.
pause 
06.
...
Sollte dieses bei Dir klappen, dann kannst Du als "scharfe" Zeile
Set Path=!path:%homedir%\Murks=!
...in Deine Batchdatei schreiben...ohne dieses Hin- und her in die Txtdatei.
Und vorher evtl alle ";;" durch ";" ersetzen...
Set Path=%path:;;=;%

That's all.

Okay, aber für ein zeilenweises Ausgeben der Einzelpfade in %PATH% hätte ich zur Not auch eine Lösung. *gg

Grüße
Biber
Bitte warten ..
Mitglied: ahe
30.10.2007 um 23:18 Uhr
Danke Biber für deine Mühe, aber leider funktioniert es (an meinem Rechner) nicht...

Ich habe die folgende Zeile eingegeben (vorher set Mypath=%path%, damit nix kaputt geht )
path=c:\windows; c:\windows\sytem32;c:\gnuffz\murks;C:\WINDOWS\System32\Wbem;

>@echo !Mypath:%homedir%=@@@@@@@@@@@@@@@@@@@@!

Das Ergebnis ist allerdings:

!Mypath:c:\gnuffz=@@@@@@@@@@@@@@@@@@@@!

anstelle von:
c:\windows; c:\windows\sytem32;\murks;C:\WINDOWS\System32\Wbem;
(also ohne c:\gnuffz)

Ich habe mir daraufhin noch eine Batch nach deinen obigen Zeilen gebastelt (dieses Mal auch mit Setlocal EnableDelayedExpansion ), aber ohne Erfolg...

Ich denke ich probiere es morgen früh noch einmal an meinem Testrechner mit meinen Testdaten und meld' mich dann noch 'mal...

Erst einmal, gute Nacht.
Axel
Bitte warten ..
Mitglied: Biber
31.10.2007 um 09:32 Uhr
Moin ahe,

ähhem...ja. Das Testen mit %MyPath% statt mit %Path% ist natürlich äußerst empfehlenswert.
Hätte ich vielleicht auch gestern erwähnen sollen...

Ich habe es eben noch mal probiert - bei mir tut es reproduzierbar.
01.
>set mypath=path=c:\windows; c:\windows\sytem32;c:\gnuffz\murks;C:\WINDOWS\System32\Wbem; 
02.
 
03.
(= 9:26:53  D:\temp=) 
04.
>set murx=c:\gnuffz\murks 
05.
 
06.
(= 9:27:51  D:\temp=) 
07.
>@echo !mypath:%murx%=! 
08.
path=c:\windows; c:\windows\sytem32;;C:\WINDOWS\System32\Wbem;
Gruß
Biber
Bitte warten ..
Mitglied: ahe
31.10.2007 um 10:03 Uhr
Hallo Biber,

ich habe jetzt auf meinem Testrechner Folgendes gemacht:

01.
@echo off & Setlocal EnableDelayedExpansion 
02.
 
03.
set homedir=c:\gnuffy 
04.
set oldpath=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;c:\gnuffy\Murks; 
05.
 
06.
echo !oldpath:%homedir%\Murks=@@@@@@@@@@@@@@@@@@@@! 
07.
 
08.
Set oldpath=!oldpath:%homedir%\Murks=!
Ergebnis:
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;@@@
@@@@@@@@@@@@@@@@@;...

Ich habe etwas gebraucht, bis mir auffiel, dass ich die Variable %homedir% im Setting Home_Dir genannt hatte und darum immer das Folgende, falsche Ergebnis hatte:
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;c:\gnuffy@@@
@@@@@@@@@@@@@@@@@;...

Ich werde jetzt erst einmal die Zeilen in mein komplettes Sript übernehmen und sehen, was passiert.

Noch einmal, vielen Dank, für deine geduldige Hilfe.

mfg
Axel
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Dauerhaftes ersetzen in der Umgebungsvariable Path

gelöst Frage von busteronBatch & Shell9 Kommentare

Hallöchen, ich hab mal wieder eine Frage! Wie kann man dauerhaft einen einen Wert in der Umgebungsvariable "Path" ersetzen ...

Batch & Shell

Bash Umgebungsvariable PATH Splitten

gelöst Frage von MarabuntaBatch & Shell1 Kommentar

Hallo, ich möchte die Pfade, welche in der Umgebungsvariable angegeben sind überprüfen. Ergibt: /root/bin:/usr/local/sbin:/usr/local/bin:/opt/csw/bin:/usr/sbin:/usr/bin:/SAMPLEPATH/bin Das schlägt immer fehl, weil ...

Batch & Shell

Umgebungsvariable "PATH" für eine Anwendung anpassen

Frage von ennoBatch & Shell7 Kommentare

Hallo zusammen, ich habe folgendes Problem. Und zwar muss ich für eine bestimmte Anwendung die Umgebungsvariable "PATH" anpassen. Aber ...

Windows Netzwerk

Java über Gruppenrichtlinie - Umgebungsvariable PATH erweitern

gelöst Frage von JuckieWindows Netzwerk4 Kommentare

Hallo zusammen, ich verteile Java über eine Gruppenrichtlinie. Soweit nichts außergewöhnliches. Nun würde ich gerne, dass beim Ausrollen einer ...

Neue Wissensbeiträge
Ausbildung

Linux-Ausstieg in Niedersachsen - Windows statt Bugfix

Information von StefanKittel vor 2 TagenAusbildung35 Kommentare

Sind ja nur Steuergelder

Speicherkarten

Neuer Speicherkartentyp - zunächst nur für Huawei-Smartphones (künftig auch für Notebooks u. Tablets?)

Tipp von VGem-e vor 4 TagenSpeicherkarten5 Kommentare

Servus, als ob das "Chaos" i.S. Speicherkarten noch nicht groß genug wäre?! Evtl. kommt dieser neue Kartentyp bald auch ...

Sicherheit

Diverse D-Link-Router durch drei Schwachstellen kompromittierbar

Information von kgborn vor 4 TagenSicherheit1 Kommentar

Hat jemand D-Link-Router in Verwendung? Einige Modelle sind sicherheitstechnisch offen wie ein Scheunentor. Äußerst unschöne Sache, aber nichts neues ...

Hardware

100.000 Mikrotik-Router ungefragt von Hacker abgesichert

Information von 7Gizmo7 vor 5 TagenHardware4 Kommentare

Hallo zusammen, da hier ja öfters mal von Mikrotik gesprochen wird. Trotz Updates klafft eine Sicherheitslücke in Hundertausenden Mikrotik-Routern. ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Passwortwechsel Zeitpunkt festlegen
Frage von Looser27Windows Userverwaltung27 Kommentare

Guten Morgen liebe Kolleginnen und Kollegen, da es eine Userin in meinem Urlaub geschafft hat, sich vom AD vollständig ...

Windows Server
Probleme im AD am Außenstandort
gelöst Frage von emeriksWindows Server19 Kommentare

Hi, wir haben ein Problem mit AD und GPO am Außenstandort und ich stehe momentan mächtig auf dem Schlauch. ...

Switche und Hubs
POE-Switche
gelöst Frage von MiStSwitche und Hubs13 Kommentare

Guten Morgen, ich überlege ob ich in unserem Netzwerk die aktuellen Switche (D-LINK DGS-1210-28) durch PoE-Switche ersetzen soll. Der ...

Windows Server
DNS - Bedingte Weiterleitung
gelöst Frage von m8ichaelWindows Server11 Kommentare

Guten Tag zusammen, ich stehe gerade bzgl. einer bedingten DNS-Weiterleitung etwas auf dem Schlauch: Ich möchte, dass für bestimmte ...