Batch Programmausgabe mit Umbruchin Variable
Hallo Team
Habe ein Win XP.
Es soll eine Programmausgabe abgespeichert werden.
Der Batch Code
for /f %%i in ('Programm') do set string=%%i
ist wohl hinlänglich für eine definierte Variablenspeicherung der Ausgabe eines Progrsmms bekannt.
Die Ausgabe bei meinem Programm ist 7.5869 an der Console, 1 Zeile unterhalb der Zeile Programmaufruf.
Ein
echo %string%
zeigt mit genau garnix.
Was ist zu tun, daß die Variable string den wert 7.5869 führt ?
Vlt. ein Filter der die Zeilenumbrüche wegfiltert o.ä. ?
Gruß rsadmchef
Habe ein Win XP.
Es soll eine Programmausgabe abgespeichert werden.
Der Batch Code
for /f %%i in ('Programm') do set string=%%i
ist wohl hinlänglich für eine definierte Variablenspeicherung der Ausgabe eines Progrsmms bekannt.
Die Ausgabe bei meinem Programm ist 7.5869 an der Console, 1 Zeile unterhalb der Zeile Programmaufruf.
Ein
echo %string%
zeigt mit genau garnix.
Was ist zu tun, daß die Variable string den wert 7.5869 führt ?
Vlt. ein Filter der die Zeilenumbrüche wegfiltert o.ä. ?
Gruß rsadmchef
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 191324
Url: https://administrator.de/contentid/191324
Ausgedruckt am: 25.11.2024 um 06:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo.
Möglichkeit 1:
Kommt nach der Ausgabezeile eine Zeile mit Zeilenumbruch? Denn in der Variabeln steht nur die letzte Zeile der Ausgabe.
Dann versuch mal so:
Möglichkeit 2:
Ist das Kommandozteilenprogramm in Java geschrieben oder kann es sein das die Ausgabe nicth auf dem Standardausgang kommt?
Dann mal das versuchen:
miniversum
Möglichkeit 1:
Kommt nach der Ausgabezeile eine Zeile mit Zeilenumbruch? Denn in der Variabeln steht nur die letzte Zeile der Ausgabe.
Dann versuch mal so:
set "string="
for /f %%i in ('Programm') do if not defined string set string=%%i
Möglichkeit 2:
Ist das Kommandozteilenprogramm in Java geschrieben oder kann es sein das die Ausgabe nicth auf dem Standardausgang kommt?
Dann mal das versuchen:
for /f %%i in ('Programm 2>&1') do set string=%%i
miniversum
Moin rsadmchef,
Sach ma', sucht ihr eigentlich noch Verstärkung? Ich hätte noch einen meiner nichtsnutzigen Neffen unterzubringen...
Da diese Fehlermeldung sich vermutlich auf die zweite Lösungsvariante miniversums bezieht, also diese
-> Maskiere die Zeichen, die im Batch eine spezieille Bedeutung haben und falsch interpretiert werden, könnten mit einem Caret (^).
Damit werden alle Zeichen, denen ein Caret vorangestellt ist, als Literal, also als Zeichen ohne jegliche Steuerzeichenbedeutung behandelt.
Grüße
Biber
Zitat von @rsadmchef:
Es gibt noch ein Problem:
"2>&1" ist syntaktisch an dieser Stelle nicht verarbeitbar...
Kommt nach Aufruf.
Und weil es erst nach Aufruf auftritt, hast du es nach dreieinhalb Jahren gemerkt?Es gibt noch ein Problem:
"2>&1" ist syntaktisch an dieser Stelle nicht verarbeitbar...
Kommt nach Aufruf.
Sach ma', sucht ihr eigentlich noch Verstärkung? Ich hätte noch einen meiner nichtsnutzigen Neffen unterzubringen...
Da diese Fehlermeldung sich vermutlich auf die zweite Lösungsvariante miniversums bezieht, also diese
for /f %%i in ('Programm 2>&1') do set string=%%i
-> Maskiere die Zeichen, die im Batch eine spezieille Bedeutung haben und falsch interpretiert werden, könnten mit einem Caret (^).
for /f %%i in ('Programm ^2^>^&^1') do set "string=%%i"
Damit werden alle Zeichen, denen ein Caret vorangestellt ist, als Literal, also als Zeichen ohne jegliche Steuerzeichenbedeutung behandelt.
Grüße
Biber