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, 18454 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
Backup

2016 - Restore mit WBAdmin - iSCSI Device als Sicherungsziel

Erfahrungsbericht von Henere vor 1 TagBackup1 Kommentar

Servus zusammen, was mich eben einige graue Haare gekostet hat Server 2016. Ich habe meinem Server eine weitere M2 ...

Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 3 TagenHumor (lol)7 Kommentare

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 3 TagenExchange Server9 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 4 TagenErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Heiß diskutierte Inhalte
E-Mail
Deutsche e-Mail Adresse auf iPhone in Katar. Nur Probleme
Frage von vanTastE-Mail15 Kommentare

Moin, ich habe hier in Deutschland auf einem Exchange 2013 eine e-Mail Adresse (name@domain.de) für einen Kollegen in Katar ...

RedHat, CentOS, Fedora
OTRS 5 kann keine Mails mehr abrufen
gelöst Frage von opc123RedHat, CentOS, Fedora11 Kommentare

Hallo, OTRS kann keine Mails mehr abrufen. Verschicken ja. Dadurch kommen keine Tickets mehr rein. Gibt es Anlaufpunkte was ...

Windows Server
Server 2016 Autotiering Storage Space
Frage von HenereWindows Server11 Kommentare

Servus, ich habe jetzt ein StorageSpace auf einem Server 2016 in Betrieb zum Testen. 1x M2 mit 512GB (970pro) ...

Netzwerke
SSH - Wieso werde ich nach VPN Verbindung rausgeschmissen?
Frage von VernoxVernaxNetzwerke10 Kommentare

Hallo, ich habe es endlich geschafft mein Handy mit einer VPN Verbindung an meinen Router anzuschließen. Nach der Login ...