highend01
Goto Top

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

Content-ID: 188220

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

Ausgedruckt am: 18.12.2024 um 19:12 Uhr

bastla
bastla 18.07.2012 um 15:22:44 Uhr
Goto Top
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
Goto Top
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