BATCH: Bildschirmausgabe in Variable speichern


PsD

Grünschnabel
Hallo Leute,

Ich suche eine möglichkeit eine Bildschirmausgabe in eine Variable zu speichern.

also z.B. die Ausgabe des folgenden Befehls:
type U:\_temp.log

Die Ausgabe wäre:
Code:
U:\>type _temp.log
        Standardgateway . . . . . . . . . : 10.254.120.1

U:\>


Zum Hintergrund:

Ich versuche mir ein Logon-Script zu schreiben, welches mir, je nachdem in welchem Netz ich mich befinde, verschiedene Laufwerke verbindet (da nicht alle Laufwerke in jedem Netz verfügbar sind)
Wenn ich einfach alle Laufwerke da rein schreib und diese nicht Verfügbar sind, so dauert es leider immer ne halbe ewigkeit bis das Script weiter läuft.

Ich habe schonmal ein ähnliches Script gebaut welches je nach Windows Version einen gewissen Programmcode ausführt, nur leider will das hier nicht so richtig funktionieren.
Ursprünglicher Code, welcher funktionierte:
Code:
VER | FIND "Windows 2000" >NUL
if errorlevel 0 GOTO Win2k

Ich wollte das ganze jetzt so benutzen:
Code:
ipconfig | find "Standardgateway" | find "10.254" >NUL
if errorlevel 0 goto gefunden
Leider kam dabei immer ein "gefunden" raus :-/
auch wenn der hintere FIND befehl nicht gefunden wird (also wenn es nicht 10.254.... ist)

Ich dachte mir es liegt vielleicht an den beiden FIND befehlen nacheinander das er nicht weiss welcher errorlevel zu welchem FIND gehört.
Also hab ich die Ausgabe erst in eine Datei geleitet, und danach per Type ausgegeben und darin gesucht.... nur leider funktioniert das auch nicht, denn auch hier sagt er mir immer "gefunden".

Siehe Code:
Code:
@ECHO OFF

ipconfig |find "Standardgateway" > U:\_temp.log

type U:\_temp.log | find "10.254" >NUL
if errorlevel 0 GOTO gefunden

echo Nicht gefunden
goto EOF

:gefunden
echo gefunden

:EOF
pause



Vielleicht habt Ihr ja eine (andere) Lösung für mich?
Zur Verfügung steht nur Batch bzw Windows standards.

Schon mal vielen Dank für Antworten :)
 
Zuletzt bearbeitet:

MC Breit

Erfahrenes Mitglied
Stichwort: Pipes

Code:
:: Eine Batch die die ausgabe von netstat in einer variablen speichert..
netstat >> netstat.tmp
set netstat = < netstat.tmp
echo Das resultat:
echo %netstat%