Batch: Textdatei auslesen, Datei löschen, Zeile in Textdatei löschen
Hallo Forum,
ich habe noch nie batch programmiert.
Ich möchte per Batch eine Textdatei auslesen, in der sich ein Pfad zu einer Datei pro Zeile befindet.
Diese Datei soll auf Existenz überprüft und im Erfolgsfall gelöscht werden. Bei Erfolg soll diese jeweilige Zeile aus der Textdatei gelöscht werden.
Fehlermeldungen sollen in einer anderen Textdatei geloggt werden.
Mein bisheriger Entwurf:
ich habe noch nie batch programmiert.
Ich möchte per Batch eine Textdatei auslesen, in der sich ein Pfad zu einer Datei pro Zeile befindet.
Diese Datei soll auf Existenz überprüft und im Erfolgsfall gelöscht werden. Bei Erfolg soll diese jeweilige Zeile aus der Textdatei gelöscht werden.
Fehlermeldungen sollen in einer anderen Textdatei geloggt werden.
Mein bisheriger Entwurf:
@echo off
title DiskdeleteForWindowsBatch
set PFAD=C:/Users/1/Desktop/VLC_toDelete.txt
IF exist %PFAD% (
echo Datei existiert.
FOR /f %%f IN (%PFAD%) DO (
IF exist %%f (
:: löschen
) else (
:: error, Datei existiert nicht
)
echo %%f
)
pause
) else (
echo %PFAD% existiert nicht.
pause rem wartet auf Tastendruck
)
Please also mark the comments that contributed to the solution of the article
Content-Key: 211965
Url: https://administrator.de/contentid/211965
Printed on: April 25, 2024 at 12:04 o'clock
5 Comments
Latest comment
Hallo,
kannst du mal testen, brauchst du nur noch deine Logdateien einzufügen.
lg
kannst du mal testen, brauchst du nur noch deine Logdateien einzufügen.
@ECHO OFF &SETLOCAL
FOR /f "delims=" %%a IN (VLC_toDelete.txt) DO (
IF EXIST "%%~a" (
DEL "%%~a" 2>&1 |findstr . >nul &&echo %%a wurde nicht gelöscht. || echo %%a erfolgreich gelöscht.
) ELSE (
ECHO %%a nicht gefunden.
)
)
lg
Hallo 147852369 und willkommen im Forum!
Etwa so:
Das Loggen der Fehlermeldungen bekommst du doch sicher selbst hin ....
Grüße
bastla
[Edit] Zeile 9 ergänzt [/Edit]
Etwa so:
@echo off & setlocal
title DiskdeleteForWindowsBatch
set "PFAD=C:\Users\1\Desktop\VLC_toDelete.txt"
IF exist "%PFAD%" (
echo Datei existiert.
move "%PFAD%" "%temp%\VLC_toDelete.txt"
FOR /f "usebackq delims=" %%f IN ("%temp%\VLC_toDelete.txt") DO (
IF exist "%%f" (
echo "%%f"
) else (
>>"%PFAD%" echo %%f
echo Datei "%%f" existiert nicht
)
)
pause
) else (
echo %PFAD% existiert nicht.
pause rem wartet auf Tastendruck
)
)
Grüße
bastla
[Edit] Zeile 9 ergänzt [/Edit]