Ausgabe in Datei ermöglichen aber zeitgleich in der Eingabeaufforderung weiterhin anzeigen.
Hallo,
gäbe es im Batch eine Lösung, wie die Ausgaben (irgendwelcher Befehle) weiterhin im CMD-Fenster für den Benutzer anzeigen aber diese dennoch zeitgleich in eine Datei schreiben?
Mit >nul an Ende eines Befehls werden ja alle seine Ausgaben in dem CMD-Fenster unterdrückt, und die Befehle dürfen ja wegen der Ausgabe in Datei nicht extra sich wiederhohlen und genau hier bin ich überfragt ;-(.
Vielen Dank für paar Tipps
Gruß
evinben
gäbe es im Batch eine Lösung, wie die Ausgaben (irgendwelcher Befehle) weiterhin im CMD-Fenster für den Benutzer anzeigen aber diese dennoch zeitgleich in eine Datei schreiben?
Mit >nul an Ende eines Befehls werden ja alle seine Ausgaben in dem CMD-Fenster unterdrückt, und die Befehle dürfen ja wegen der Ausgabe in Datei nicht extra sich wiederhohlen und genau hier bin ich überfragt ;-(.
Vielen Dank für paar Tipps
Gruß
evinben
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 189105
Url: https://administrator.de/contentid/189105
Ausgedruckt am: 22.11.2024 um 04:11 Uhr
8 Kommentare
Neuester Kommentar
Hallo,
Und mit ein paar Suchbegriffen und einer Suchmaschine deiner Wahl findest du dann ganz schnell zu Rob Van der Woude und seinem Batch Redirection welches dich dann zum UnixPorts und dort gezielt zum TEE führt.
Alternativ mittels Powershell kannst du auch das Tee-Object Cmdlet nutzen.
Es gibt sicherlich noch weitaus mehr möglichkeiten
Gruß,
Peter
Zitat von @evinben:
gäbe es im Batch eine Lösung, wie die Ausgaben (irgendwelcher Befehle) weiterhin im CMD-Fenster für den Benutzer
anzeigen aber diese dennoch zeitgleich in eine Datei schreiben?
Ja.gäbe es im Batch eine Lösung, wie die Ausgaben (irgendwelcher Befehle) weiterhin im CMD-Fenster für den Benutzer
anzeigen aber diese dennoch zeitgleich in eine Datei schreiben?
Mit >nul an Ende eines Befehls werden ja alle seine Ausgaben in dem CMD-Fenster unterdrückt,
Nein. Die werden nicht unterdrückt sondern werden durch das > Zeichen umgeleitet. In deinem beispiel an das Gerät mit der internen Bezeichnung NUL. Dort werden die Daten dann schlichtweg einfach vernichtet.Und mit ein paar Suchbegriffen und einer Suchmaschine deiner Wahl findest du dann ganz schnell zu Rob Van der Woude und seinem Batch Redirection welches dich dann zum UnixPorts und dort gezielt zum TEE führt.
Alternativ mittels Powershell kannst du auch das Tee-Object Cmdlet nutzen.
Es gibt sicherlich noch weitaus mehr möglichkeiten
Gruß,
Peter
Moin,
- Stückkunst, die Frage wird ja mindestens 1* pro Jahrhalb neu gestellt....
Hm, du willst ja nur die ausgabe doppelt.
z.b.
So würde ich das machen...
Bei anderen Befehlen, weiß ich icht genau wie das fungtioniert, aber du könntest z.b. den befehl auch doppelt ausführen.
Einmal für die Datei und einmal für die ausgabe. (ist aber nicht wirklich optimal)
Grüße
Darkprodukt
z.b.
for /f [...] %%i in [...] do echo %%i>>Die_Datei.txt && echo %%i
So würde ich das machen...
Bei anderen Befehlen, weiß ich icht genau wie das fungtioniert, aber du könntest z.b. den befehl auch doppelt ausführen.
Einmal für die Datei und einmal für die ausgabe. (ist aber nicht wirklich optimal)
Grüße
Darkprodukt
... und ergänzend zu T-Mo: Wozu wohl Kollege Batch - mit und ohne tee - Konsoleausgaben zugleich in eine Datei leiten und auf dem Bildschirm ausgeben" angetan hat?
Grüße
bastla
Grüße
bastla
moin evinben,
der Tee ist aber vllt schon zu schnell weggelaufen.
Teste mal diesen Tee, der ist vllt etwas mehr durchgezogen und Zeigt Dir auch etwas Simultaner an:
Gruß Phil
der Tee ist aber vllt schon zu schnell weggelaufen.
Teste mal diesen Tee, der ist vllt etwas mehr durchgezogen und Zeigt Dir auch etwas Simultaner an:
@echo off
setlocal disabledelayedexpansion
rem Befehl eingeben (-- escapen wie in der Forschleife --)
set "Befehl=dir /m /b /s D:\Musik\"
rem Logfile angeben
set "File=D:\Log.txt."
del "%file%"
start "Befehlseingabe hier" cmd /c "(%Befehl% )2>&1 |findstr /n ^^ >"%file%" "
set /a n=0
:Ausgabe
(find /c /v "" <"%file%") 2>nul 1>&2 ||goto :Ausgabe |findstr /b [1-9] >nul ||goto :Ausgabe
for /f "delims=" %%i in ('findstr /e $ ^<"%file%" ^|more +%n% ^|find /v "" ') do (set /a n + = 1
set "Line=%%i"
setlocal enabledelayedexpansion
echo(!Line:*:=!
endlocal
)
findstr /ve $ "%file%" >nul 2>&1 && goto :Ausgabe
for /f %%i in ('find /v /c "" ^<"%file%" ') do if %%i neq %n% goto :Ausgabe
(type nul >>"%file%") 2>nul ||goto :Ausgabe
Gruß Phil