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-Key: 188220

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

Printed on: April 25, 2024 at 14:04 o'clock

Member: bastla
bastla Jul 18, 2012 at 13:22:44 (UTC)
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
Member: Highend01
Highend01 Jul 18, 2012 at 13:48:45 (UTC)
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