Batch - For Schleifen Ausgabe in Datei umleiten
Hallo Forum,
ich habe ein kleines Problem mit der Umleitung von dem Ergebnis einer For-Schliefe.
Ich habe mir eine Batch-Datei geschrieben um ein Verzeichnis auszulesen um die älteren Dateien zu löschen. Anschließend soll das Ergebnis in eine TXT Datei geschrieben / umgeleitet werden. Das funktioniert nur wenn nur eine Datei zu löschen da ist. Sollten es mehrere Dateien sein werden auch diese angezeigt und gelöscht aber nur eine wird in die Txt Datei geschrieben.
Gibt es eine Möglichkeit das so umzuschreiben das mir alle Dateien in die TXT Datei geschrieben werden.
Hier mein Code:
Wenn ich meinen Code mit >> abändere (siehe unten) werden alle Dateien in die TXT Datei geschrieben. So möchte ich das aber nicht weil dann die Einträge am nächsten Tag dazu geschrieben werden. Ich möchte das jeden Tag nur die Dateien die gelöscht wurden eingeschrieben bekommen. Ich hoffe ich habe mich nicht zu verwirrend ausgedrückt.
"
Vielen Dank für Eure Hilfe.
Gruß Jürgen
ich habe ein kleines Problem mit der Umleitung von dem Ergebnis einer For-Schliefe.
Ich habe mir eine Batch-Datei geschrieben um ein Verzeichnis auszulesen um die älteren Dateien zu löschen. Anschließend soll das Ergebnis in eine TXT Datei geschrieben / umgeleitet werden. Das funktioniert nur wenn nur eine Datei zu löschen da ist. Sollten es mehrere Dateien sein werden auch diese angezeigt und gelöscht aber nur eine wird in die Txt Datei geschrieben.
Gibt es eine Möglichkeit das so umzuschreiben das mir alle Dateien in die TXT Datei geschrieben werden.
Hier mein Code:
@echo off & setlocal
set Kopf=%temp%\Kopf.txt
>%Kopf% echo\
>>%Kopf% echo\
>>%Kopf% echo ==============================================
>>%Kopf% echo ----------------------------------------------
>>%Kopf% echo - Filme Bereinigung beginnt. -
>>%Kopf% echo ----------------------------------------------
>>%Kopf% echo ==============================================
>>%Kopf% echo\
>>%Kopf% echo\
>>%Kopf% echo\
for /L %%A in (5,-1,0) do (
type %Kopf%
echo Suchvorgang wird gestartet
echo\
echo Wartezeit von %%A sekunden laeuft...
ping localhost -n 2 >nul
cls
)
type %Kopf%
set "Ordner=J:\HDD-Test"
set "endung=*.ts"
set "Anzahl=4"
set "loesch=loesch.txt"
for /f "skip=%Anzahl% delims=" %%i in ('dir /b /a-d /o-d "%Ordner%\%endung%"') do echo "%Ordner%\%%i" & echo "Geloescht am %date% - Datei= %Ordner%\%%i" > "%Ordner%\%loesch%" & set "loeschen=%Ordner%\%%i" & del "%Ordner%\%%i"
cls
Wenn ich meinen Code mit >> abändere (siehe unten) werden alle Dateien in die TXT Datei geschrieben. So möchte ich das aber nicht weil dann die Einträge am nächsten Tag dazu geschrieben werden. Ich möchte das jeden Tag nur die Dateien die gelöscht wurden eingeschrieben bekommen. Ich hoffe ich habe mich nicht zu verwirrend ausgedrückt.
echo "Geloescht am %date% - Datei= %Ordner%\%%i" >>"%Ordner%\%loesch%
Vielen Dank für Eure Hilfe.
Gruß Jürgen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 670741
Url: https://administrator.de/forum/batch-for-schleifen-ausgabe-in-datei-umleiten-670741.html
Ausgedruckt am: 16.01.2025 um 19:01 Uhr
5 Kommentare
Neuester Kommentar
@echo off & setlocal
set "Kopf=%temp%\Kopf.txt"
>"%Kopf%" (
echo.
echo ==============================================
echo ----------------------------------------------
echo - Filme Bereinigung beginnt. -
echo ----------------------------------------------
echo ==============================================
echo.
echo.
echo.
)
for /L %%A in (5,-1,0) do (
type %Kopf%
echo Suchvorgang wird gestartet
echo\
echo Wartezeit von %%A sekunden laeuft...
timeout /t 1 >nul
cls
)
type %Kopf%
set "Ordner=J:\HDD-Test"
set "endung=*.ts"
set "Anzahl=4"
set "loesch=loesch.txt"
>"%Ordner%\%loesch%" 2>&1 (for /f "skip=%Anzahl% delims=" %%i in ('dir /b /a-d /o-d "%Ordner%\%endung%"') do (
echo "%Ordner%\%%i"
echo Geloescht am %date% - Datei= %Ordner%\%%i
del "%Ordner%\%%i"
))