Zeilen einer Ausgabe mit for in nummerierte Variablen schreiben?
Hallo
ich habe jetzt schon viel versucht, aber ich finde meinen Fehler nicht.
Die Aufgabenstellung ist eigentlich recht simpel:
Ich möchte aus einer Bildschirmausgabe bestimmte Werte auslesen und in Variablen speichern.
Hier nun mein Ansatz:
@echo off
setlocal EnableDelayedExpansion
set /a count=0
for /f "tokens=2 delims=<>" %%i in ('curl "http://fritz.box/cgi-bin/webcm?getpage=../html/login_sid.xml"') do (
set /a count+=1
set dummy!count! = %%i
)
Die Bildschirmausgabe besteht in meinem Falle wie gewünscht aus 3 Zeilen, welche in den Variablen dummy1 bis dummy3 gespeichert werden sollen. Leider klappt es offenbar so nicht. Die Variablen werden nicht richtig gesetzt.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 137207
Url: https://administrator.de/forum/zeilen-einer-ausgabe-mit-for-in-nummerierte-variablen-schreiben-137207.html
Ausgedruckt am: 24.05.2025 um 06:05 Uhr
11 Kommentare
Neuester Kommentar

Hallo Physikuss,
wo liegt denn jetzt das Problem?
Bis auf die überflüssigen/falschen Leerzeichen vor und nach der Zuweisung in Zeile 6 funktioniert dein Code doch?
Ich würde aber wegen gleicher Zifferanzahl statt auf 0 auf 1000 initialisieren.
Gib mal als Zeile 8 ein:
Gruß
LotPings
wo liegt denn jetzt das Problem?
Bis auf die überflüssigen/falschen Leerzeichen vor und nach der Zuweisung in Zeile 6 funktioniert dein Code doch?
Ich würde aber wegen gleicher Zifferanzahl statt auf 0 auf 1000 initialisieren.
Gib mal als Zeile 8 ein:
Set dummy
Gruß
LotPings

Hallo Physikuss,
wer lesen kann, ist klar im Vorteil.
in Zeile 6 wird das Leerzeichen vor dem = Teil des Variablennamens und das Leerzeichen dahinter Teil des Inhalts.
Gruß
LotPings
wer lesen kann, ist klar im Vorteil.
in Zeile 6 wird das Leerzeichen vor dem = Teil des Variablennamens und das Leerzeichen dahinter Teil des Inhalts.
Gruß
LotPings

Zitat von @Physikuss:
Dann scheint mit den echo-Aufrufen nach EnableDelayedExpansion etwas anders zu sein als ich mir das vorstelle.
Ja ich fürchte du musst deine Vorstellung anpassen Dann scheint mit den echo-Aufrufen nach EnableDelayedExpansion etwas anders zu sein als ich mir das vorstelle.
Da kommt bei echo > !dummy1! einfach nur:
Echo ist ausgeschaltet(OFF) bzw. Echo ist eingeschaltet (ON).
In deiner Batch wird ja auch eine andere Variable gesetzt.Echo ist ausgeschaltet(OFF) bzw. Echo ist eingeschaltet (ON).
"!dummy!" ist ungleich "!dummy !"
Um die Ausgabe des Echo-Status zu vermeiden kannst du direkt hinter dem Echo auch statt eines Leerzeichens folgende Zeichen setzen:
Echo.Punkt
Echo:Doppelpunkt
Echo/Slash
Echo\Backslash
Echo;Semikolon
Echo,Komma
Gruß
LotPings
Moin Physikuss,
du bist im Moment auf der ganz falschen Fährte... es ist alles viel banaler... hat nichts mit enableter expansion oder Sonnenflecken oder so zu tun.
Was du tust in deiner ursprünglichen Zuweisung innerhalb der FOR-Anweisung entspräche am CMD-Prompt:
[ Das führende ">" nicht mit eingeben, ist mein Prompt]
--> dann siehst du, dass du die Werte [Leerzeichen]1, [Leerzeichen]2 und [Leerzeichen]3 an die Variablennamen "Dummy1[Leerzeichen]", "Dummy2[Leerzeichen]", "Dummy3[Leerzeichen]" zugewiesen hast
Und eine Variable "Dummy1[Leerzeichen]" ist eine ganz andere Variable als "Dummy1"(ohne Leerzeichen).
Aber was geECHOed werden soll und NICHT da ist ist bei "Echo !dummy1!-(ohne Leerzeichen)"... hmmm?
Das versuchte dir das Lordchen vorhin schon zu erklären.
Du warst nur auf die fehlende Komplexität des Fehlers nicht vorbereitet.
Grüße
Biber
du bist im Moment auf der ganz falschen Fährte... es ist alles viel banaler... hat nichts mit enableter expansion oder Sonnenflecken oder so zu tun.
Was du tust in deiner ursprünglichen Zuweisung innerhalb der FOR-Anweisung entspräche am CMD-Prompt:
>for /L %i in (1,1,3) do @set Dummy%i = %i
## wenn du dann nach Variablen namens "Du<whatever>" fragst:
>set du
Dummy1 = 1
Dummy2 = 2
Dummy3 = 3
## jetzt noch mal mit ohne Leerzeichen rund ums "="
>for /L %i in (1,1,3) do @set Dummy%i=%i
>set du
Dummy1=1
Dummy1 = 1
Dummy2=2
Dummy2 = 2
Dummy3=3
Dummy3 = 3
--> dann siehst du, dass du die Werte [Leerzeichen]1, [Leerzeichen]2 und [Leerzeichen]3 an die Variablennamen "Dummy1[Leerzeichen]", "Dummy2[Leerzeichen]", "Dummy3[Leerzeichen]" zugewiesen hast
Und eine Variable "Dummy1[Leerzeichen]" ist eine ganz andere Variable als "Dummy1"(ohne Leerzeichen).
Aber was geECHOed werden soll und NICHT da ist ist bei "Echo !dummy1!-(ohne Leerzeichen)"... hmmm?
Das versuchte dir das Lordchen vorhin schon zu erklären.
Du warst nur auf die fehlende Komplexität des Fehlers nicht vorbereitet.
Grüße
Biber