Batch: Ausgabe eines Programmes als Var Festelegen

DarthShader

Erfahrenes Mitglied
Hallo,

seit Windows XP besitzt der set Befehl, um Umgebungsvariablen zu definieren, die Option /P. Die Beschreibung sagt:

Die Option /P ermöglicht es, einer Variablen eine Eingabezeile des Benutzers
zuzuweisen und zeigt die angegebene Eingabeaufforderung an, bevor die
Eingabezeile gelesen wird. Die Eingabeaufforderung kann leer sein.

Somit kann der Set Befehl also von der Eingabeaufforderung lesen. Nun könnte man soetwas machen, um den Inhalt einer Datei in einer Umgebungsvariablen zu speichern:

Code:
set /p MeineVar= < datei.txt

Somit steht der Inhalt, jedenfalls die erste Zeile, der Datei "datei.txt" in der Variablen "MeineVar".

Wunderbar dachte ich, dann könnte man sicher auch die Standardeingabe umleiten, um z.B. die Ausgabe eines Programmes in eine Variable zu schreiben, z.B.:

Code:
echo foo | set /p MeineVar=

Die Eingabeaufforderung zeigt mir keinen Fehler an, jedoch wird die Variable "MeineVar" auch nicht angelegt.

Weiß jemand Rat bzw. hat es schonmal geschaft, die Ausgabe von Programmen, die also auf die Standardausgabe schreiben, in eine Umgebungsvariable zu setzen?

(ich bin bis jetzt immer den Umweg gegangen, und habe die Ausgabe eines Programmes in eine Datei zwischengespeichert, und aus dieser heraus dann den Wert in die Variable gespeichert - sehr umständlich...)


Danke!
 
Du erklärst es schon fast selbst: Hab eben auch lange rumgetüftelt, und:
Code:
programm.exe> %TEMP%\datei.txt
set /p MeineVar= <%TEMP%\datei.txt
ECHO MeineVar lautet: %MeineVar%


PS: Seh gerade, der Thread ist schon ziemlich alt, bin aber über google hier her gekommen, also dachte ich, der Vollständigkeit halber...
 

Neue Beiträge

Zurück