Cómo eliminar todos los archivos y carpetas en una carpeta mediante una llamada cmd


Respuestas:


137

No, no conozco ninguno.

Si desea conservar el directorio original por algún motivo (ACL, etc.) y, en cambio, realmente desea vaciarlo, puede hacer lo siguiente:

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

Esto primero elimina todos los archivos del directorio y luego, de forma recursiva, elimina todos los directorios anidados, pero en general, mantiene el directorio de nivel superior tal como está (excepto por su contenido).

Tenga en cuenta que dentro de un archivo por lotes necesita duplicar el %dentro del forciclo:

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

3
Pude hacer esto sin un archivo por lotes. use el && para concatenar las dos operaciones
Matt Broekhuis

1
Soy un novato completo de Windows-Shell: ¿cómo configuro el destino en una ruta con este ejemplo?
low_rents

Reemplaza la palabra destinationpor la ruta, posiblemente usando comillas alrededor de todo si es necesario.
Joey

4
Esta respuesta me entristece, porque es la mejor respuesta
KCD

1
@stenci: La segunda línea solo puede eliminar el directorio dado. De hecho, lo hace de forma recursiva, pero no puede eliminar un archivo. Por lo tanto, para eliminar todo dentro de un directorio, debe eliminar todos los archivos y todos los directorios. Tenga en cuenta que no se trata de eliminar un solo directorio y todo lo que contiene. Se trata de eliminar todo lo que hay dentro y mantener el directorio principal.
Joey

39

del c:\destination\*.* /s /qtrabajó para mi. Espero que eso también funcione para ti.


13
Elimina todos los archivos pero no las carpetas.
Eric

2
Lo que funcionó para mí fue navegar a la carpeta. (Mayús, haga clic con el botón derecho, seleccione el indicador de cmd abierto aquí) y luegodel *.*
Daniel L. VanDenBosch

ejemplo de ruta relativadel "../../server/front-end\*.*"
FindOutIslamNow

@ DanielL.VanDenBosch, eso no es muy programable.
Synetech

29

Creo que la forma más sencilla de hacerlo es:

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

La última "\" en la ruta es la parte importante.


27
Esto también elimina la propia carpeta.
Archie

Perfecto, esto es lo que necesito :)
gNerb

¿Funciona de forma recursiva cuál es el camino que es demasiado largo?
eomeroff

2
combinar esto con mkdir C:\FolderToNotToDeletefue suficiente para mí :)
qbolec

1
Esto puede ser problemático si su carpeta principal (que se elimina de esta manera) tiene algunos permisos importantes, que ahora necesita volver a crear ...
Mladen B.

15

¡Si! Utilice Powershell:

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

Lástima que PowerShell sea una bestia engorrosa, hinchada y muy lenta. : - |
Synetech

13

Si los nombres de las subcarpetas pueden contener espacios, debe rodearlos entre comillas de escape. El siguiente ejemplo muestra esto para los comandos utilizados en un archivo por lotes.

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

6

Para borrar un archivo:

del PATH_TO_FILE

Para eliminar la carpeta con todos los archivos en ella:

rmdir /s /q PATH_TO_FOLDER

Eliminar todos los archivos de una carpeta específica (no eliminar la carpeta en sí) es un poco complicado. del /s *.*no puede eliminar carpetas, pero elimina archivos de todas las subcarpetas. Entonces se necesitan dos comandos:

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

Puede crear una secuencia de comandos para eliminar lo que desee (carpeta o archivo) de esta manera 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%

Pocos ejemplos de uso:

mydel.bat "path\to\folder with spaces"
mydel.bat path\to\file_or_folder

1

Una opción sencilla de una línea es crear un directorio vacío en algún lugar de su sistema de archivos y luego usar ROBOCOPY( http://technet.microsoft.com/en-us/library/cc733145.aspx ) con el /MIRinterruptor para eliminar todos los archivos y subcarpetas. De forma predeterminada, robocopy no copia la seguridad, por lo que las ACL en su carpeta raíz deben permanecer intactas.

También es probable que desee establecer un valor para el interruptor de reintento /r, porque el número predeterminado de reintentos es 1 millón.

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

0

Tenía una carpeta de índice con 33 carpetas que necesitaban eliminar todos los archivos y subcarpetas. Abrí una línea de comando en la carpeta de índice y luego usé estos comandos:

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

Los separé en dos líneas (presione enter después de la primera línea y, cuando se le solicite, agregue la segunda línea) porque si se ingresa en una sola línea, es posible que no funcione. Este comando borrará cada directorio y luego creará uno nuevo que está vacío, eliminando así todos los archivos y subcarpetas del directorio original.



0

Toma 2 sencillos pasos. [/ q significa silencioso, / f significa forzado, / s significa subdirectorio]

  1. Vaciar el directorio para eliminar

    del *.* /f/s/q  
    
  2. Eliminar el directorio

    cd ..
    rmdir dir_name /q/s
    

Ver imagen


0

intente esto, esto buscará todo MyFolder en el directorio raíz y eliminará todas las carpetas llamadas MyFolder

for /d /r "C:\Users\test" %%a in (MyFolder\) do if exist "%%a" rmdir /s /q "%%a"

0
del .\*

Este comando elimina todos los archivos y carpetas de la navegación actual en su línea de comando.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.