stollkuehn
Goto Top

batch reg query pfad auslesen (pfad hat leerzeichen)

ich schaff es einfach nicht face-sad

Servus an alle,

kurz vor Ostern habe ich ein Problem was ich einfach nicht lösen kann, vielleicht, seh ich aber den Wald schon nicht mehr.

Also ich führe innerhalb eines Batch ein reg query aus und schreibe den inhalt des schlüssels in eine datei

reg query HKCU\Software\IrgendeinSchlüssel\NochWas > test.txt

soweit so gut, alles kein problem

anschließend parse ich über das textfile mit ein for anweisung drüber.

FOR /F "tokens=3" %%a IN ('findstr /c:"Directory" test.txt') DO SET DIRECTORY=%%a  

das klappt auch wunderbar, mir dem kleinen aber feinen haken, das der REG_SZ Eintrag ein Pfad enthält. Pfade können Leerzeichen enthalten. Und genau da is das Problem. Enthält der REG_SZ ein trag als folgenden Wert:

C:\Irgend Etwas\Wird Sich hier\vllt_verbergen

wird meine Variable DIRECTORY natürlich nur mit "C:\Irgendwas" befüllt. der rest fällt. weg. Wenn der immer gleich bleiben würde würde ich noch mehr tokens nehmen. das ist aber nicht drin, da der pfad variabel ist.

Das einzige was ich weiß das meine test.txt folgendermaßen aufgebaut ist.

HKCU\Software\IrgendeinSchlüssel\NochWas
    Directory    REG_SZ    C:\Irgend Etwas\Wird Sich hier\vllt_verbergen
    blabla    REG_SZ    bla

in jeder zeile die einen registrywert enthält wird jedes token also durch 4 leerzeichen von einander getrennt.

Leider kann ich in meiner for anweisung nicht beibringen das die delims gleich vier freizeichen sein sollen.

Hat jemand eine Idee?

Liebe Grüße aus Berlin und allen ein schönes Osterfest

Stefan

Content-ID: 83636

Url: https://administrator.de/contentid/83636

Ausgedruckt am: 13.11.2024 um 09:11 Uhr

bastla
bastla 20.03.2008 um 20:18:28 Uhr
Goto Top
Hallo stollkuehn!

Vielleicht so (erspart auch das Temp-File):
for /f "tokens=2*" %%a in ('reg query HKCU\Software\IrgendeinSchlüssel\NochWas^|findstr /c:"Directory"') do set "DIRECTORY=%%b"  

Grüße
bastla
stollkuehn
stollkuehn 20.03.2008 um 20:34:29 Uhr
Goto Top
hallo bastla,

danke für die antwort. die Idee das in einer zeile zumachen kam mir auch. da ich aber mehrere werte aus der reg ziehe, dachte ich es wäre optimaler ein file zu schreiben und das zu parsen. auf jedenfall funktioniert deine zeile hervorragend.

ich werd das jetzt auf jeden fall erstmal in mein batch einbauen.

Danke dir

Gruß

Stefan