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-ID: 42887

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

Ausgedruckt am: 13.11.2024 um 09:11 Uhr

Jere
Jere 24.10.2006 um 11:34:20 Uhr
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.
Gerhard1610
Gerhard1610 24.10.2006 um 11:43:27 Uhr
Goto Top
vielen Dank für die schnelle Hilfe, ich werde es heute mittag mal testen.

grüsse

Gerhard
Jere
Jere 24.10.2006 um 11:44:57 Uhr
Goto Top
gerne doch, gerhard.
und wenns probleme gibt meld dich einfach nochmal face-smile
Wladimir
Wladimir 24.10.2006 um 14:52:07 Uhr
Goto Top
oder man kann auch ">>" werden die weitern Ausgaben in die Log-Datei darangehängt.
36539
36539 28.10.2006 um 22:38:31 Uhr
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
Biber
Biber 29.10.2006 um 01:38:30 Uhr
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.
Phantom06
Phantom06 03.11.2006 um 11:48:40 Uhr
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