it-swarm.com.de

So löschen Sie alle Dateien und Ordner in einem Ordner per Cmd-Aufruf

Ich benutze Windows.

Ich möchte alle Dateien und Ordner in einem Ordner durch Systemaufruf löschen.

Ich kann so anrufen:

>rd /s /q c:\destination
>md c:\destination

Kennen Sie einen einfacheren Weg?

63
ufukgun

Nein, ich kenne keinen.

Wenn Sie das ursprüngliche Verzeichnis aus irgendeinem Grund (ACLs, & c.) Beibehalten und es wirklich leeren möchten, können Sie Folgendes tun:

del /q destination\*
for /d %x in (destination\*) do @rd /s /q "%x"

Dabei werden zunächst alle Dateien aus dem Verzeichnis entfernt und anschließend alle verschachtelten Verzeichnisse rekursiv entfernt. Das Verzeichnis der obersten Ebene bleibt jedoch unverändert (mit Ausnahme des Inhalts).

Beachten Sie, dass Sie innerhalb einer Batchdatei den % innerhalb der for-Schleife verdoppeln müssen:

del /q destination\*
for /d %%x in (destination\*) do @rd /s /q "%%x"
110
Joey

del c:\destination\*.* /s /q arbeitete für mich. Ich hoffe das funktioniert auch für dich. 

26
Sean

Ich denke, der einfachste Weg, dies zu tun, ist:

rmdir /s /q "C:\FolderToNotToDelete\"

Das letzte "\" im Pfad ist der wichtige Teil.

25
Banan

Wenn die Unterordnernamen Leerzeichen enthalten können, müssen Sie sie in Anführungszeichen setzen. Das folgende Beispiel zeigt dies für Befehle, die in einer Batchdatei verwendet werden.

set targetdir=c:\example
del /q %targetdir%\*
for /d %%x in (%targetdir%\*) do @rd /s /q ^"%%x^"
9
fractor

Ja! Verwenden Sie Powershell:

powershell -Command "Remove-Item 'c:\destination\*' -Recurse -Force"
8

So löschen Sie eine Datei:

del PATH_TO_FILE

So löschen Sie einen Ordner mit allen Dateien:

rmdir /s /q PATH_TO_FOLDER

Das Löschen aller Dateien aus einem bestimmten Ordner (nicht den Ordner selbst löschen) ist etwas kompliziert. del /s *.* kann keine Ordner löschen, entfernt jedoch Dateien aus allen Unterordnern. Es werden also zwei Befehle benötigt:

del /q PATH_TO_FOLDER\*.*
for /d %i in (PATH_TO_FOLDER\*.*) do @rmdir /s /q "%i"

Sie können ein Skript zum Löschen beliebiger Objekte (Ordner oder Dateien) erstellen. mydel.bat:

@echo off
setlocal enableextensions

if "%~1"=="" (
    echo Usage: %0 path
    exit /b 1
)

:: check whether it is folder or file
set ISDIR=0
set ATTR=%~a1
set DIRATTR=%ATTR:~0,1%
if /i "%DIRATTR%"=="d" set ISDIR=1

:: Delete folder or file
if %ISDIR%==1 (rmdir /s /q "%~1") else (del "%~1")
exit /b %ERRORLEVEL%

Einige Anwendungsbeispiele:

mydel.bat "path\to\folder with spaces"
mydel.bat path\to\file_or_folder
3
Maxim Suslov

Eine einfache einzeilige Option besteht darin, ein leeres Verzeichnis irgendwo in Ihrem Dateisystem zu erstellen und dann ROBOCOPY ( http://technet.Microsoft.com/de-de/library/cc733145.aspx ) mit dem /MIR zu verwenden. Um alle Dateien und Unterordner zu entfernen. Standardmäßig kopiert Robocopy die Sicherheit nicht. Daher sollten die ACLs in Ihrem Stammordner erhalten bleiben.

Wahrscheinlich möchten Sie auch einen Wert für den Wiederholungsschalter /r festlegen, da die Standardanzahl der Wiederholungen 1 Million beträgt.

robocopy "C:\DoNotDelete_UsedByScripts\EmptyFolder" "c:\temp\MyDirectoryToEmpty" /MIR /r:3
1
BateTech

Navigieren Sie zum übergeordneten Verzeichnis

Line1 Pushd "Elternverzeichnis"

Löschen Sie die Unterordner

Zeile2 rd/s/q. 2> nul

https://superuser.com/questions/173859/how-can-i-delete-all-filessubfolders-in-a-given-folder-via-the-kommando-Prompt

Ich hatte einen Indexordner mit 33 Ordnern, in denen alle Dateien und Unterordner entfernt wurden. Ich öffnete eine Befehlszeile im Indexordner und verwendete dann diese Befehle:

for /d in (*) do rd /s /q "%a" & (
md "%a")

Ich habe sie in zwei Zeilen aufgeteilt (drücken Sie nach der ersten Zeile die Eingabetaste und wenn Sie nach weiteren Zeilen gefragt werden), weil dies bei Eingabe in einer einzelnen Zeile nicht funktioniert. Dieser Befehl löscht jedes Verzeichnis und erstellt dann ein neues, das leer ist, wodurch alle Dateien und Unterordner im ursprünglichen Verzeichnis entfernt werden.

0
Ynotinc