DOS-Batch: Umleitung in 2 Dateien
Hallo,
vielleicht ist die Antwort auch zu einfach, aber ich komme leider nicht dahinter.
Für das Umleiten der Programmausgabe gibt es ja den Umleitungsoperator (> bzw. >>).
Wie kann man eine Ausgabe in 2 Dateien gleichzeitig schreiben?
Bisher habe ich das sehr unsauber gelöst:
dir > temp.txt
type temp.txt >> datei1.txt
type temp.txt >> datei2.txt
del temp.txt
Ich würde gerne die Ausgabe von 'dir' direkt in zwei 2 Dateien schreiben bzw. anhängen (>>).
Vielen Dank im Voraus
slickwilly2000
vielleicht ist die Antwort auch zu einfach, aber ich komme leider nicht dahinter.
Für das Umleiten der Programmausgabe gibt es ja den Umleitungsoperator (> bzw. >>).
Wie kann man eine Ausgabe in 2 Dateien gleichzeitig schreiben?
Bisher habe ich das sehr unsauber gelöst:
dir > temp.txt
type temp.txt >> datei1.txt
type temp.txt >> datei2.txt
del temp.txt
Ich würde gerne die Ausgabe von 'dir' direkt in zwei 2 Dateien schreiben bzw. anhängen (>>).
Vielen Dank im Voraus
slickwilly2000
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 35013
Url: https://administrator.de/contentid/35013
Ausgedruckt am: 25.11.2024 um 20:11 Uhr
3 Kommentare
Neuester Kommentar
Moin slickwilly2000,
geht mit Bordmitteln nicht.
Unter UNIX gibt es dafür ein "tee"-Utility, das gleichzeitig Streams in mehrere Kanäle schreiben kann - in M$'s Betriebssystemen nicht.
Es gibt zwar einige nach Windows migrierte tee-Varianten (tee.exe; mtee.exe), eine davon sogar von M$ höchstselbst, aber ich würde Dir davon abraten.
Wenn Du abwägen musst dazwischen, ob der Batch dann nur in heimischer Umgebung läuft (bei Dir/dort wo auch das tee.exe-Utility vorhanden ist) oder aber überall, und dafür sind zwei redundante Zeilen drin...
..dann würde ich den zweiten Weg gehen.
Für den ersten Weg (tee-Utilities): ein paar habe ich mailbar hier, aber ausschließlich aus Jäger- und Sammlergründen.
Quellen dafür kennt Dr. Google besser als ich.
Gruß
Biber
geht mit Bordmitteln nicht.
Unter UNIX gibt es dafür ein "tee"-Utility, das gleichzeitig Streams in mehrere Kanäle schreiben kann - in M$'s Betriebssystemen nicht.
Es gibt zwar einige nach Windows migrierte tee-Varianten (tee.exe; mtee.exe), eine davon sogar von M$ höchstselbst, aber ich würde Dir davon abraten.
Wenn Du abwägen musst dazwischen, ob der Batch dann nur in heimischer Umgebung läuft (bei Dir/dort wo auch das tee.exe-Utility vorhanden ist) oder aber überall, und dafür sind zwei redundante Zeilen drin...
..dann würde ich den zweiten Weg gehen.
Für den ersten Weg (tee-Utilities): ein paar habe ich mailbar hier, aber ausschließlich aus Jäger- und Sammlergründen.
Quellen dafür kennt Dr. Google besser als ich.
Gruß
Biber
...Ergänzung und Verdeutlichung:
Was ohne Hilfsutilities unter M$-Shells NICHT möglich ist, ist das synchrone zusätzliche Ausgeben in einen weiteren Ausgabekanal z.B.
- in Datei und Bildschirm
- oder Drucker und Datei gleichzeitig
- oder in 2 Dateien gleichzeitig,
so dass das "outputliefernde Programm" auch nur einmal laufen muss.
Denn das sollte ja das Ziel sein... im obigen Beispiel soll ja auch der DIR-Befehl nur 1x rumrödeln und nicht 2x hintereinander.
Das - wie geschrieben - geht nicht anders.
Was anders ginge: den mehrfachen Aufruf nacheinander... den kann man/frau lesbarer gestalten.
Ist aber alles nur kosmetisch... eine echte Verbesserung gibt es ohne Utilities nicht.
Biber
P.S. @slickwilly2000:
Aber dass Du das unbefriedigend findest, ist ein gutes Zeichen. So beginnen IT-Karrieren....
Was ohne Hilfsutilities unter M$-Shells NICHT möglich ist, ist das synchrone zusätzliche Ausgeben in einen weiteren Ausgabekanal z.B.
- in Datei und Bildschirm
- oder Drucker und Datei gleichzeitig
- oder in 2 Dateien gleichzeitig,
so dass das "outputliefernde Programm" auch nur einmal laufen muss.
Denn das sollte ja das Ziel sein... im obigen Beispiel soll ja auch der DIR-Befehl nur 1x rumrödeln und nicht 2x hintereinander.
Das - wie geschrieben - geht nicht anders.
Was anders ginge: den mehrfachen Aufruf nacheinander... den kann man/frau lesbarer gestalten.
REM Original: [DIR-Befehl wird nur einmal aufgerufen]
::
dir > temp.txt
type temp.txt >> datei1.txt
type temp.txt >> datei2.txt
del temp.txt
:: Variante: [DIR-Befehl wird auch nur einmal aufgerufen]
::
dir > temp.txt
for %%i In (datei3.txt datei4.txt) do type temp.txt >>%%i
::... oder, kürzer und schlechter lesbar, so:
for %%i In (5 6) do type temp.txt >>datei%%i.txt
del temp.txt
:: Unsinnige Variante: [DIR-Befehl wird mehrmals aufgerufen]
::
for %%i In (datei7.txt datei8.txt) do dir >>%%i
::... oder, kürzer und schlechter lesbar, so:
for %%i In (9 10) do dir>>datei%%i.txt
::-keine Zwischendatei, kein DEL nötig
Ist aber alles nur kosmetisch... eine echte Verbesserung gibt es ohne Utilities nicht.
Biber
P.S. @slickwilly2000:
Aber dass Du das unbefriedigend findest, ist ein gutes Zeichen. So beginnen IT-Karrieren....