Variable in for-Anweisung definieren

hovawart
Goto Top
Sorry, nach drei Stunden erfolgloser Suche und Experimentierens frage ich jetzt doch einmal (und riskiere den "Anschiss" wg. Dummheit!) !

Ich möchte die zweite Zeile, die mit dem Kommando
wmic path SoftwareLicensingService get OA3xOriginalProductKey
ausgegeben wird, einer Variablen übergeben, zur weiteren Verarbeitung.
Prinzipiell klappt das auch, aber nur innerhalb der for-Anweisung.
Während in der for-Anweisung die Ausgabe mit echo %%a funktioniert, findet die Übergabe an die Variable var mit set var=%%a zwar statt, weil echo !var! auch den gewünschten Inhalt liefert, sie ist aber nach Verlassen der for-Anweisung nicht mehr verfügbar. Auch ein echo %var% an dieser Stelle (statt !var!) liefert nichts.
Ein set-Kommando liefert mir in der alphabetischen Variablenliste an der richtigen Stelle (zw. U und W) ein ar= . Das "v" fehlt und die Variable ist ohne (sichtbaren) Inhalt.

Was mache ich falsch?

Content-Key: 655650

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

Ausgedruckt am: 29.06.2022 um 15:06 Uhr

Mitglied: rubberman
rubberman 24.02.2021 aktualisiert um 22:11:47 Uhr
Goto Top
WMIC hat einige Bugs. Bspw. zusätzliche CR Zeichen am Ende der Zeile.
Ungetestet:

Steffen
Mitglied: Hovawart
Hovawart 25.02.2021 um 13:47:42 Uhr
Goto Top
Ganz herzlichen Dank!
Diese Variante hat sofort funktioniert!

Durch die etwas andere Ausgabe des WMIC-Kommandos, ausgelöst durch den Parameter /value, kann in der von rubberman dargestellten Form eine andere Auswertung erfolgen, die zu einem plausiblen Ergebnis führt.

Danke nochmal!
Mitglied: rubberman
rubberman 25.02.2021 um 18:28:49 Uhr
Goto Top
Gerne. Die 2. FOR /F Schleife ist übrigens erforderlich um den angesprochenen Bug auszubügeln. Ohne diese würdest du ein zusätzliches CR Zeichen am Wert haben, was du ggf. erst in einem HEX Editor sicher erkennst.

Steffen