Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batchdatei - Logschreiben aber trotzdem Textausgabe in der Konsole

Frage Entwicklung Batch & Shell

Mitglied: Kamenz

Kamenz (Level 1) - Jetzt verbinden

05.10.2005, aktualisiert 08.05.2011, 13564 Aufrufe, 4 Kommentare

Hallo!
Mein Problem ist das ich wenn ich ne Batch habe und eine Log definiert habe und Zeilen mit
>> %LOG%
in die Log schreibe keine Ausgabe mehr am aktuellen Konsolefesnter erfolgt. Kennt da jemand ne Lösung?
Mitglied: 16640
05.10.2005 um 09:56 Uhr
M.W. geht das mit dem normalen Kommandointerpreter von Windows nicht. Iirc bietet 4NT von JP-Soft diese Möglichkeit.

Aber mal grundsätzlich: wozu eigentlich? Entweder sitz ich davor und will gucken, was passiert, dann brauch' ich die Umleitung nicht. Wenn ich später alles in Ruhe nachlesen will, dann stört mich auch der dunkle Monitor nicht

hand/dba
Bitte warten ..
Mitglied: Biber
05.10.2005 um 20:51 Uhr
Moin Kamenz,

ich finde dba's Einwand berechtigt, kenne aber auch Dein Problem.
Ich habe das in einigen Batchen (z.B. meinen StartUp-Scripten), in denen ich ein paar normale Statusmeldungen auf dem Bildschirm anzeigen lasse und aus den Augenwinkeln mitverfolge, aber zusätzlich Fehlermeldungen sowohl auf dem Monitor haben will wie auch in einer Log-Datei. Die normalen Alles-Prima-Meldungen will ich ja nicht mitloggen... wozu auch.

Billig-Strategie für diese Mimik: wenn es einen Fehler gegeben hat, einfach den selben Befehl noch einmal ausführen lassen. Und diesmal die Ausgabe umleiten in die Logdatei
Beispiel:
01.
... 
02.
net use x: \\server\freigabe  
03.
if Errorlevel 1 net use x: \\server\freigabe >>%logfile% 
04.
...
Oder, was bei mir auch vorkommt: bestimmte Befehle einfach doppelt ausführen.
Habe sogar ein echtes Beispiel aus meinen Startscriptchen gefunden:
01.
... 
02.
net use |find "OK" 
03.
echo %time:~0,5% NetStatus final >>%logfile% 
04.
net use |find "OK" >>%logfile% 
05.
...
Das heißt, die Anzeige, welche Netzlaufwerke nach dem Startup da sind, will ich erst auf dem Bildschirm haben und danach nochmal mit Uhrzeit im Logfile.
Dritte Variante:
Befehl nur einmal ausführen, aber jegliche Meldung unterdrücken und selbst eine (oder mehrere) schreiben
01.
... 
02.
net use x: \\server\freigabe >nul 2>nul 
03.
 
04.
if Errorlevel 1 ( 
05.
  echo Laufwerk X: konnte nicht verbunden werden! 
06.
  echo Laufwerk X: konnte nicht verbunden werden! >>%logfile% 
07.
  goto nextlw 
08.
09.
echo Laufwerk X: verbunden.... 
10.
 
11.
:nextlw 
12.
net use y: \\server2\freigabeB >nul 2>nul 
13.
...
Eleganter bekommst Du Deine Anforderung mit kleinen Utilities hin, die von richtigen Betriebssystemen nach Windows portiert wurden.

Die nennen sich dann Tee.exe oder (mTee.exe, wTee.exe) und machen dasselbe wie tee unter Unix (schreiben gleichzeitig auf zwei Kanälen, einmal auf Console, einmal in Datei).
Findest Du beim Gogglen.

Vorteil: Du kannst alle Meldungen dann sowohl..als auch.. schreiben und der eigentliche Befehl wird nur einmal ausgeführt.

Nachteil: Dein Batch läuft eben auch nur noch dort, wo das Hilfsutility gefunden wird. Auf Deinem Rechner sicherlich, aber eben nicht mehr auf jedem beliebigen Rechner.

Deshalb empfehle ich Dir lieber das Doppelt-Schreiben, auch wenn es stümperhaft aussieht.

HTH Biber
Bitte warten ..
Mitglied: Kamenz
06.10.2005 um 09:13 Uhr
Danke erstmal!
Hat sich soweit erledigt.
Die Ausgabe sollte nur nocheinmal für Debugging in der Konsole stattfinden.
Aber da das File jetz eh läuft ist es auch egal.
Also wer den Skript braucht um Oracle Archive zu sichern kann sich melden ;).
Bitte warten ..
Mitglied: NeonZero
13.09.2008 um 09:23 Uhr
Viele Wege führen zum Ziel. Bibers und meinen Weg habe ich in dieser Anleitung zusammengetragen.

Bye, nz
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...