# Batch: Ausgabe eines Programmes als Var Festelegen



## DarthShader (20. August 2004)

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:


```
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.:


```
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!


----------



## mewX (11. Juli 2006)

Du erklärst es schon _fast_ selbst: Hab eben auch lange rumgetüftelt, und:

```
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...


----------

