Batch Befehl Ausgabe in Variablen schreiben?

2 Antworten

Mit dem SETLOCAL-Befehl kannst du ermöglichen, eine Variable in einer FOR-Schleife mehrmals zu ändern. Um Zeilenumbrüche zu übernehmen, musst du sie extra mitschreiben lassen, unten z. B. über die LF-Variable. Die beiden Leerzeilen nach dem SET-Befehl sind dabei wichtig.

Setlocal EnableDelayedExpansion
set LF=^

FOR /F "delims=" %%A IN ('ipconfig') DO if "!Ausgabe!" == "" (set Ausgabe=%%A) ELSE (set Ausgabe=!Ausgabe!!LF!%%A)
echo.!Ausgabe!

Die IF-Unterscheidung verhindert, dass eine Leerzeile am Anfang von !Ausgabe! steht.

Du kannst !Ausgabe! nur als Zeichenfolge verwenden, sie ist syntaktisch unbrauchbar. Das bedeutet, du kannst auf diese Weise nicht mehrere Batchbefehle speichern und ausführen.

Mit set überschreibst du es jedes Mal. Du musst es anhängen.

...wobei dabei wohl die Zeilenumbrüche hin wären.


halloichbins098 
Fragesteller
 26.04.2016, 16:46

Und wie hänge ich es hinten dran? Die zeilenumbrüche sind egal

0
PerfectMuffin  26.04.2016, 17:00
@halloichbins098

...gute Frage, es scheint, als ob ausgabe während der Schleife nicht aktualisiert werden kann...

Batch, was soll der Unfug?

0