Delete mittels Batch

  • Sonstige

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von MaxeStudios.

    Delete mittels Batch

    Hallo zusammen,

    ich möchte gerne mittels einer batch Datei alle Dateien in einen angebenen Ordner löschen. Davon ausgeschlossen sie die bat Datei selbst sein und eine log Datei.

    Mittels Internet bin ich auf folgendes Script gestossen:

    Quellcode

    1. set folder="C:\test"
    2. cd /d %folder%
    3. for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)


    Dieses Script löscht alles in einem Verzeichnis.

    Ich muss allerdings gestehen, dass ich mich mit Batch null auskenne. Deswegen frage ich mal euch, wie ich hier meine zwei Dateien behalten kann.

    Ich gehe mal davon aus, dass ich in der for Schleife meinen Dateinamen mittels if abfangen muss. Doch sicher bin ich mir nicht.

    LG Marvin

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Hi,
    Du könntest so vorgehen, das Du Dir eine Löschdatei erstellst, ohne deine .bat Datei
    DIR |find /V "*.bat" > Loeschen.txt
    und dann in der For Schleife die Dateien aus dieser Liste löschen
    FOR /F %%i in ("Loeschen.txt") do ( del %%i )

    EDIT:
    Eleganter wäre es eventuell noch über die PowerShell.
    dies hier in eine Batch Datei startet die Powershell und löscht deine Dateien außer die beiden, die du ausschließt.
    powershell -Executionpolicy ByPass -Command "&{gci 'C:\test' -Exclude 'DeineDatei.bat','DeineDatei.log' | Remove-item -Recurse -Force -EA SilentlyContinue}"
    "Hier könnte Ihre Werbung stehen..."

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MichaHo“ ()

    Hallo nochmal,

    ich habe es nun so gelöst:

    Quellcode

    1. for %%i in (*.*) do if not "%%i"=="Sownloader.zip" if not "%%i"=="sownloader.log" if not "%%i"=="rename.bat" if not "%%i"=="config.ini" del /q "%%i"


    Nun gibt es noch das Problem, dass ich gerne noch alle Unterordner mit Inhalt löschen möchte, außer einen, der Bilddateien beinhaltet.

    Wie kann ich mittels Batch rekursiv löschen, mit festgelegten Dateien und Ordnern, die erhalten bleiben sollen.

    LG Marvin
    @MarvinKleinMusic Musses ne Batch sein?
    Warum schreibst Du kein Programm dafür?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Falls es, warum auch immer, wie eine Konsolenanwendung aussehen muss, mach das ganze doch einfach in z.B. VB .NET. Ich glaube da wäre dass doch etwas einfacherer umsetzbar oder?

    ╔══╦═╦╦╦═╦══╦══╦╗╔╦═╦╦═╦══╗
    ║║║║╩╠..╣╦╬╗╚╬╗╔╣╚╝║╠║║║╠╗╚╣
    ╚╩╩╩╩╩╩╩═╩══╝╚╝╚══╩═╩╩═╩══╝