hu147852369

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:

@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
	)
	
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 211965

Url: https://administrator.de/forum/batch-textdatei-auslesen-datei-loeschen-zeile-in-textdatei-loeschen-211965.html

Ausgedruckt am: 10.06.2025 um 05:06 Uhr

Endoro
Endoro 19.07.2013 um 22:04:45 Uhr
Goto Top
Hallo,

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
bastla
bastla 19.07.2013, aktualisiert am 20.07.2013 um 01:05:24 Uhr
Goto Top
Hallo 147852369 und willkommen im Forum!

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
    )
)
Das Loggen der Fehlermeldungen bekommst du doch sicher selbst hin ....

Grüße
bastla

[Edit] Zeile 9 ergänzt [/Edit]
hu147852369
hu147852369 19.07.2013 aktualisiert um 22:31:31 Uhr
Goto Top
@Endoro: Bei deinem Script werden die Dateien nicht gelöscht.
Ausgabe:
F:/1/c1.wmv wurde nicht gel├Âscht.
F:/1/c2.wmv wurde nicht gel├Âscht.
F:/1/c3.wmv wurde nicht gel├Âscht.

@bastla:
Deine Ausgabe:
Datei existiert.
Das System kann den angegebenen Pfad nicht finden.
Datei "C:\Users\1\AppData\Local\Temp\VLC_toDelete.txt" existiert nicht

Und in die Textdatei wird "C:\Users\1\AppData\Local\Temp\VLC_toDelete.txt" angefügt.

Edit:
Eigentlich wäre ich auch mit einem Programm zufrieden, dass diese Textdatei entgegennimmt und die Dateien nacheinander löscht.
hu147852369
hu147852369 19.07.2013 um 23:41:10 Uhr
Goto Top
Okay. Das erste Script funktioniert. Ich muss nur / durch \ im Pfad ersetzen.

Vielen Dank soweit. Ich bastel mal weiter rum.
bastla
bastla 20.07.2013 um 01:06:28 Uhr
Goto Top
Hallo 147852369!

Sorry, Zeile 9 war nicht vollständig face-sad - ist jetzt oben korrigiert.

Grüße
bastla