it-swarm.com.de

Wie kann ich alle Dateien/Unterordner in einem bestimmten Ordner über die Eingabeaufforderung löschen?

Ich möchte alle Dateien und Unterordner in einer Batch-Datei in Windows 7 löschen und den obersten Ordner behalten. Grundsätzlich den Ordner leeren. Was ist die Befehlszeilenanweisung dafür?

42
Tony_Henrich

Verwenden Sie dazu del und das Flag /S (um anzugeben, dass alle Dateien aus allen Unterverzeichnissen entfernt werden sollen):

del /S C:\Path\to\directory\*
52
MDMarra

Die beste Lösung: z.B. Ich möchte alle Dateien und Unterverzeichnisse des übergeordneten Verzeichnisses löschen. Sagen wir "C:\Users\Desktop\New folder \". Der einfache Weg ist die Erstellung einer Batch-Datei mit weniger als drei Befehlen.

cd C:\Benutzer\Desktop\Neuer Ordner \

del */S/Q

rmdir/S/Q "C:\Benutzer\Desktop\Neuer Ordner \"

Hier werden zuerst alle Dateien in allen Unterverzeichnissen und dann alle leeren Unterverzeichnisse gelöscht. Da das aktuelle Arbeitsverzeichnis das übergeordnete Verzeichnis ist, d. H. "\ Neuer Ordner", kann der Befehl rmdir dieses Verzeichnis nicht selbst löschen.

21
Annasaheb

Navigieren Sie zum übergeordneten Verzeichnis:

pushd "Parent Directory"

Löschen Sie die Unterordner:

rd /s /q . 2>nul
9
user340956

mit rmdir können Sie die Dateien und Unterordner wie folgt löschen:

rmdir /s/q MyFolderPath

Es ist jedoch wesentlich schneller, insbesondere wenn Sie viele Unterordner in Ihrer Struktur haben, um del vor dem rmdir zu verwenden, wie folgt:

del /f/s/q MyFolderPath > nul
rmdir /s/q MyFolderPath
5
rmdir "c:\pathofyourdirectory" /q /s

Vergessen Sie nicht, die Anführungszeichen zu verwenden und für den /q /s werden alle Repositorys gelöscht, ohne dass Sie dazu aufgefordert werden.

5
SuperUser

Sie können dies schnell und einfach tun, indem Sie diese drei Anweisungen in Ihre Fledermausdatei einfügen:

mkdir empty_folder
robocopy /mir empty_folder "path_to_directory"
rmdir empty_folder
3
fireblood

Wenn Sie alle Dateien in einem Ordner löschen möchten, einschließlich aller Unterordner, und sich nicht auf einige Fehlerbedingungen verlassen möchten, um den Stammordner intakt zu halten (wie ich in einer anderen Antwort gesehen habe), könnten Sie eine Batch-Datei wie diese haben:

@echo off

REM Checking for command line parameter
if "%~1"=="" (

    echo Parameter required.
    exit /b 1

) else (

    REM Change directory and keep track of the previous one
    pushd "%~1"

    if errorlevel 1 (

        REM The directory passed from command line is not valid, stop here.
        exit /b %errorlevel%

    ) else (

        REM First we delete all files, including the ones in the subdirs, without confirmation
        del * /S /Q

        REM Then we delete all the empty subdirs that were left behind
        for /f %%D IN ('dir /b /s /a:d "%~1"') DO rmdir /S /Q "%%D"

        REM Change directory back to the previous one
        popd

        REM All good.
        exit /b 0
    )

)

Und dann würden Sie es einfach so nennen:

empty_my_folder.bat "C:\whatever\is\my folder"
3
Gio

Dies funktionierte besser für mich, als ich Leerzeichen in den Ordnernamen hatte.

@echo off
REM ---- Batch file to clean out a folder
REM Checking for command line parameter
if "%~1"=="" (

echo Parameter required.
exit /b 1

) else (
echo ***********************************************************************************
    echo *** Deleting all files, including the ones in the subdirs, without confirmation *** 
    del "%~1\*" /S /Q
echo ***********************************************************************************
    REM Deleting all the empty subdirs that were left behind
FOR /R "%~1" %%D IN (.) DO (
    if "%%D"=="%~1\."  (
    echo *** Cleaning out folder: %~1 *** 
    ) else (
    echo Removed folder "%%D"
    rmdir /S /Q "%%D"
    )
) 

    REM All good.
    exit /b 0

)
1
Ed Hammond

Das hat bei mir funktioniert.

  1. Navigieren Sie in den Ordner, in dem Sie die Dateien löschen möchten.
  2. Typ: del *
  3. Y für yes.
  4. Erledigt
0
Erv