Archivo BAT para borrar contenido de una carpeta

Estoy queriendo eliminar el contenido de una carpeta, tanto archivos como carpetas.

Arme el siguiente BAT y se borran los archivos pero no las carpetas.

@ECHO OFF
del /S /Q "\\svr-copias\f$\Carpeta Temp\*.*"
Exit

Le agregue esto para borrar carpetas:

@ECHO OFF
del /S /Q "\\svr-copias\f$\Carpeta Temp\*.*"
rd /S /Q "\\svr-copias\f$\Carpeta Temp\"
Exit

Pero me borra la carpeta "Carpeta Temp", y yo solo quiero que borre el contenido de esta incluyendo sus carpetas.

4 respuestas

Respuesta
1

No sé por qué se ha "resucitado" este tema tan antiguo. Pero me ha interesado el asunto y la mejor solución que he encontrado es la siguiente:

pushd "\\svr-copias\f$\Carpeta Temp\"
rd /s /q .
Popd

El comando RD dará un error diciendo "El proceso no tiene acceso al archivo porque está siendo utilizado por otro proceso" al intentar borrar la propia carpeta pero habrá hecho todo lo demás.

Respuesta

Jorge Segovia!

No puedo hacer la prueba ya que yo no tengo unidades de red. Pero supongo que funcionara igual o por lo menos te indico como puede hacerse.

Lo primero sería colocarse en el directorio que puede ser esta orden o algo parecido

cd \\svr-copias\f$\Carpeta Temp\

y despues ejecutas las dos órdenes que tenias sobre el directorio actual

del /S /Q *.*
rd /S /Q *.*

No obstante hay que tener un cuidado que me asusta ya que si por algún mótivo no cambias al directorio te puede borrar todo lo del directorio actual. Mejor prueba con esto, pero practica primero viendo si funciona la orden

cd \\svr-copias\f$\Carpeta Temp\

y creando el fichero Bat en un directorio para el solo

-------------------

cd \\svr-copias\f$\Carpeta Temp\

if not errorlevel 0 goto noruta

del /S /Q *.*
rd /S /Q *.*

goto fin

Noruta:

Echo Fallo en la orden CD, no se pudo acceder a la ruta

Fin:

-----------------------

Ya hace años que no hacía nada en BAT o CMD

En tiempos muy atrás existí una orden DELTREE que borraba ficheros y directorios pero la quitaron con Windows 2000 y XP

Respuesta

Pues seria algo así

set folder="C:\svr-copias\f$\Carpeta Temp"

cd /d %folder%

for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)

Así borraría todo lo que estuviera en la carpeta temp menos la carpeta temp -)

Respuesta

De esta forma la carpeta y los archivos que están dentro de la misma

@echo off
rd /s /q "C:\carpeta"@echo off

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas