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, 19218 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
Windows Server
MagicInfo und Path
gelöst Frage von agowa338Windows Server2 Kommentare

Hallo, ich habe hier ein sehr komisches Phänomen. Ich habe einen Server mit 2012R2 mit allen Updates installiert, anschließend ...

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
Windows 7 - PATH - ändern
gelöst Frage von Franz-Josef-IIBatch & Shell13 Kommentare

Guten Morgen Ich verzweifle gerade an einer PATH-Änderung in Win7. Es geht um Java. Die alte Version steht unter ...

Batch & Shell
Destination Path Abfrage mit Powershell
gelöst Frage von windelterroristBatch & Shell5 Kommentare

Guten Morgen Admins :) Für eine Destinationpath Abfrage habe ich so meine Vorstellungen, kann sie aber selbst nicht wirklich ...

Neue Wissensbeiträge
Internet

EU Urheberrechtsreform: Eingriff in die Internetkultur

Information von Frank vor 7 StundenInternet1 Kommentar

Liebe Besucherin, lieber Besucher, warum erscheint das obere Banner in allen Beiträgen? Aus Protest gegen Teile der geplanten EU-Urheberrechtsreform ...

Windows Server
Windows Backup - FilterManager Event 3
Tipp von NixVerstehen vor 1 TagWindows Server

Hallo zusammen, ich bin kein gelernter ITler und auch beruflich nicht in dem Feld tätig. Wir setzen in unserem ...

Windows 10

Windows 10 - Programme laufen schneller, wenn Sie mit Administratorrechten ausgeführt werden

Erfahrungsbericht von 1Werner1 vor 2 TagenWindows 1013 Kommentare

Moin, das wollte ich erst nicht glauben, aber es ist so. Wenn Ihr ein Programm mit Administratorrechten unter Windows ...

Sicherheits-Tools
Putty hat heftige Bugs korrigiert!
Information von Lochkartenstanzer vor 3 TagenSicherheits-Tools8 Kommentare

Moin, Wie man aus herauslesen kann, sind in den Versionen vor 0.71 gravierende Bugs, die es angeraten erscheinen lassen, ...

Heiß diskutierte Inhalte
Server-Hardware
Kompatibilität Tray für HP Proliant DL385 G10 vs. G8, G9
Frage von chris123Server-Hardware19 Kommentare

Hallo, weiß einer der hier anwesenden, ob die Trays für 2,5 " HDDs zwischen einem DL 385 G10 und ...

Outlook & Mail
Office 365 mit Email-Profil installieren
gelöst Frage von 139221Outlook & Mail18 Kommentare

Hallo, kurz zu meiner Person: Vor ungefahr 10 Jahren habe ich eine Umschuldung zum Fachinformatiker für Systemintegration gemacht aber ...

Server-Hardware
Server Hardwareempfehlung für Projekt
gelöst Frage von heax22Server-Hardware12 Kommentare

Hallo zusammen, ich bin auf der Suche nach einer geeigneten Server Plattform um unter Hyper-V einen virtuellen Server 2016 ...

E-Mail
Wie funktionieren DNS Blacklisten?
gelöst Frage von WinLiCLIE-Mail12 Kommentare

Ich frage mich schon seit längerem, woher genau die Blacklisten für die Mailserver die Domains und Ips kennen die ...