gerhard1610
Goto Top

Batchausgabe in Text Datei

Ergebnis von Durchlauf in eine Text Datei schreiben

Hallo zusammen,

ich bin ein blutiger Batch - Script - Anfänger

Ich habe ein kleines Script geschrieben mit dem ein Defragmentierungstool unter Windows 2000 auf Kommandoebene ausgeführt wird ( Tool heist CONTIG). Nun möchte ich gerne das Ergebnis (sprich die Meldungen, die in dem DOS Fenster gezeigt werden) in eine Text (LOG) Datei geschrieben wird. Für eine kleine Hifestellung wäre ich sehr dankbar.

Vielen Dank im Vorraus

Grüsse

Gerhard

Content-Key: 42887

Url: https://administrator.de/contentid/42887

Printed on: April 18, 2024 at 10:04 o'clock

Member: Jere
Jere Oct 24, 2006 at 09:34:20 (UTC)
Goto Top
contig > log.txt

syntax:

BEFEHL > AUSGABE

">" dient dem umleiten in AUSGABE

EDIT:
die ausgabe wir da abgelegt wo du dich gerade befindest.
Beispiel:

C:\Dokumente und Einstellungen\XXX\Desktop>dir > test.txt
schmeisst dir test.txt auf den desktop.
Member: Gerhard1610
Gerhard1610 Oct 24, 2006 at 09:43:27 (UTC)
Goto Top
vielen Dank für die schnelle Hilfe, ich werde es heute mittag mal testen.

grüsse

Gerhard
Member: Jere
Jere Oct 24, 2006 at 09:44:57 (UTC)
Goto Top
gerne doch, gerhard.
und wenns probleme gibt meld dich einfach nochmal face-smile
Member: Wladimir
Wladimir Oct 24, 2006 at 12:52:07 (UTC)
Goto Top
oder man kann auch ">>" werden die weitern Ausgaben in die Log-Datei darangehängt.
Mitglied: 36539
36539 Oct 28, 2006 at 20:38:31 (UTC)
Goto Top
oder man kann auch ">>" werden die weitern Ausgaben in die Log-Datei darangehängt.

mit ">" (umleiten, Datei neu anlegen) und ">>" (falls Ziel-Datei vorhanden, anhängen) werden aber sämtliche Ausgaben umgeleitet. D.h. es erfolgt keine Bildschirmausgabe mehr. Falls also Gerhard Beides gleichzeitig will müsste er dafür sorgen das die Ausgabe doppelt in die Batch geschrieben wird.

Bsp:
echo Tool ist Fertig! (damit erfolgt Ausgabe auf Bildschirm)
echo Tool ist Fertig! > irgendeine.txt (schreibt "Tool ist Fertig!" in die *.txt, Ausgabe auf dem Bildschirm wird unterdrückt)

gruß
onegasse59
Member: Biber
Biber Oct 28, 2006 at 23:38:30 (UTC)
Goto Top
...vollkommen richtig, onegasee59,

und dieses leidige Thema "Manchmal will ich aber in eine Logdatei schreiben und auch auf dem Bildschirm mitlesen" ist unter M$-Batch nur mit Tricks möglich.
Es wird kein "TEE"-Befehl wie unter Unix unterstützt, der "sowohl-als-auch" in Datei und auf den Bildschirm schreibt.

Dazu fallen mir drei Strategien ein:
a) den Befehl doppelt ausführen, wie Du es eben vorgeturnt hast.
Lässt sich zwar lesbarer kürzen..
for %%i in (con irgendeine.txt) do echo Tool ist fertig! >> %%i
...aber der Befehl muss dennoch zweimal ausgeführt werden.
Kein Problem bei einem "echo Bla ich erzähl Dir was.."-Befehl, aber viel zu langsam oder auch gar nicht mehrfach ausführbar bei anderen Befehlen.
Beispiel: ein "net use x: ..." ist eben nur einmal ausführbar.
Und ein Chkdsk oder ein Virenscan auf allen Laufwerken zweimal laufen zu lassen, weil das Ergebnis einmal auf den Bildschirm soll und einmal in ein Logfile.... eher suboptimal.

In diesen Fällen dann lieber
b) Alles in eine Logdatei schreiben ( >irgendeine.txt) und am Ende des Batches noch mit "type irgendeine.txt" den ganzen Quatsch nochmal anzeigen.

c) die nur auf dem eigenen Rechner empfohlene Variante wäre die tatsächlich Nutzung des TEE-Befehls über Freeware-Utilities wie Tee.exe, mtee.exe... - aber da lässt sich immer nur auf dem eigenen PC garantieren, dass die vorhanden sind.

Gruß
Biber
P.S. Ich habe den Beitrag von "Entwicklung" nach "Batch & Shell" verschoben.
Member: Phantom06
Phantom06 Nov 03, 2006 at 10:48:40 (UTC)
Goto Top
hi leutz,

man könnte aber auch den text asu einer log-date wieder in eine variable einlesen und
diese ein ausgeben.

z.b. so:

-->snipp

set /P meinelog=<f:\logirgendwas.txt
echo %meinelog%

-->snapp

lg
phantom