Die Antwort auf die Frage wurde mir natürlich genau in dem Moment zu geschoben, als ich den Artikel veröffentlicht hatte.
Die Lösung steht hier und ist erschreckend simpel.
„for“ als delimiter einfach ein Tab übergeben, wieso ich da nicht drauf gekommen bin…
for /f "tokens=2* delims= " %%a in ('reg query "HKLM\SOFTWARE\SPSS\SPSS for Windows German\15.0\Setup" /v Directory') do set pfad=%%b
So einfach ist es.
Einfache Frage, scheinbar schwere Antwort.
Ich suche eine allgemein funktionierende Methode den Wert eines beliebigen Schlüssels auszulesen.
Bei einem Schlüssel habe ich es schon geschafft, dazu musste ich aber die Batch Zeile direkt auf diesen Schlüssel hin zuschneiden und schreiben, das ist nicht allgemein.
@echo on for /f "tokens=2 delims=C:" %%a in ('reg query "HKLM\SOFTWARE\SPSS\SPSS for Windows German\15.0\Setup" /v "Directory" ^| findstr "Directory" ^| findstr "C:\\"') do set pfad=C:%%a echo %pfad% pause
Dadurch bekomme ich den Pfad von der SPSS Statistics Installation in eine Variable. Dass dieser Weg bei allen anderen Schlüsseln (ausser vielleicht welchen mit einem Pfad als Wert) nicht mehr funktioniert muss ich wahrscheinlich nicht erwähnen.
Also, Vorschläge?
Also bei mir läuft es sogar ohne „delims=^t „, denn jeglicher WhiteSpace ist der Default für Delims. (Ich mag Denglisch)