highend01

Registry auslesen - Variablenvergleich schlägt fehl

Hallo zusammen,

irgendwie bin ich gerade zu blöd oder zu blind...

Wenn ich das folgende in einer .bat Datei ausführen lasse:

FOR /F "tokens=3 delims=,	 " %%I IN ('REG QUERY "HKCU\Software\WinRAR\Profiles\0" /v Name') DO SET ProfileName=%%I  

IF "%ProfileName%"=="StandardProfil" echo ja  

Bekomme ich keinen Output per echo.

Füge ich nach der FOR Zeile noch echo __%ProfileName%__ ein, bekomme ich den Output:
__StandardProfil__

Die Unterstrichte deswegen, damit man sehen kann, dass die Variable keine Leerzeichen o.ä. enthält (d.h.: hinter ProfileName=%%I ist auch _wirklich_ kein Leerzeichen o.ä.).
Zusätzlich sollte man erkennen, dass %ProfileName% auch wirklich auf: StandardProfil gesetzt wurde.

Wenn ich die oberen 2 Kommandos allerdings direkt in einer Eingabeaufforderung verwende (und dafür natürlich %%I gegen %I ersetze), dann bekomme ich sehr wohl "ja" als Output?!?

Warum funktioniert mein Vergleich der Variablen mit dem Wert innerhalb der Batch Datei nicht?

Danke im Voraus,
Highend
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 188220

Url: https://administrator.de/forum/registry-auslesen-variablenvergleich-schlaegt-fehl-188220.html

Ausgedruckt am: 29.07.2025 um 18:07 Uhr

bastla
bastla 18.07.2012 um 15:22:44 Uhr
Hallo Highend01!

Bist Du Dir hinsichtlich des groß geschriebenen "P" sicher? Versuch es mal mit "if /i" ...
BTW:
Die Unterstrichte deswegen, damit man sehen kann, dass die Variable keine Leerzeichen o.ä. enthält (d.h.: hinter ProfileName=%%I ist auch _wirklich_ kein Leerzeichen o.ä.).
Das ließe sich auch einfach so sicherstellen:
FOR /F "tokens=3" %%I IN ('REG QUERY "HKCU\Software\WinRAR\Profiles\0" /v Name') DO SET "ProfileName=%%I"
Grüße
bastla
Highend01
Highend01 18.07.2012 um 15:48:45 Uhr
Hi bastla!

Ok, erschieß mich, ich bin tatsächlich zu blind gewesen...

Du hast nämlich vollkommen Recht, der Wert für Name ist nicht StandardProfil sondern Standardprofil, also mit kleinem p *sigh*

Das if /i hat mir dabei aber weitergeholfen, ansonsten hätte ich das vermutlich selber nicht glauben wollen...

Vielen Dank!

Gruß,
Highend