For Funktion in *.bat

Hallo Leute,
ich wollte mit einer FOR Funktion herausfinden ob es sich um ein 32 oder 64bit System handelt.
Mit dieser abfrage möchte ich die Regedit suche unterstützen da es unter Windows Probleme bei 32 bzw. 64bit Java Versionen gibt.

Das hab ich bis jetzt:
FOR /F „skip=1 tokens=*“ %%A IN (‚wmic OS get OSArchitecture‘) Do set Version=%%A
Pause

Das gibt die Konsole aus:
C:\Users\Thomas\Desktop\Tests>FOR /F „skip=1 tokens=*“ %A IN (‚wmic OS get OSArchitecture‘) Do set Version=%A

:\Users\Thomas\Desktop\Tests>set Version=64-Bit

:\Users\Thomas\Desktop\Tests>set Version=

C:\Users\Thomas\Desktop\Tests&gt:stuck_out_tongue_winking_eye:ause
Drücken Sie eine beliebige Taste . . .

Ich versteh nicht wieso die Zeile set Version=(leer) angezeigt wird und mir diese die gesetzte Variable löscht.
Falls jemand eine Idee hat wäre das super!

Grüße Thomas

Hi,

windows batch programmierung ist wirklich nicht mein ding, aber ich vermute stark, dass die Ausgabe von „wmic OS get OSArchitecture“ am Ende noch einen Zeilenumbruch erzeugt.
Das legt jedenfalls die Ausgabe nahe, wenn man ein simples echo test benutzt, also %A gar nicht auswertet:

C:\Users\tom>FOR /F „skip=1 tokens=*“ %A IN (‚wmic OS get OSArchitecture‘) Do echo test

C:\Users\tom>echo test
test

C:\Users\tom>echo test
test

Du darfst also dein SET nur machen, wenn %A nicht leer ist. Wie du das in der for-Schleife und dem do machst, kann ich dir leider nicht sagen.