Para ayudar a nuestros usuarios, utilizamos un servicio de traducción. Por favor, disculpe cualquier error gramatical.
¿Quieres decir que quieres eliminar una carpeta completa usando CMD?
Probar:
del /F /S /Q C:\Nombre de la carpeta
Este explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
Buenas tardes,
Estoy intentando borrar un conjunto de archivos y directorios mediante un archivo .bat, pero no doy con el comando correcto.
La estructura de carpetas que tengo es la siguiente:
CarpetaPadre
---- SubcarpetaUsuario1
----------------- Carpetas con contenido (Archivos u otras carpetas)
----------------- Archivos: Word, Excel, etc.
---- SubcarpetaUsuario2
----------------- Carpetas con contenido (Archivos u otras carpetas)
----------------- Archivos: Word, Excel, etc.
---- SubcarpetaUsuario3
----------------- Carpetas con contenido (Archivos u otras carpetas)
----------------- Archivos: Word, Excel, etc.
---- Archivos: Word, Excel, etc.
Necesitaría eliminar todo el contenido de las subcarpetas que incluyen otras carpetas y archivos y a la vez borrar todos los archivos de la CarpetaPadre que no sean subcarpetas de usuarios tal que así:
CarpetaPadre
---- SubcarpetaUsuario1
----------------- (Vacío)
---- SubcarpetaUsuario2
----------------- (Vacío)
---- SubcarpetaUsuario3
----------------- (Vacío)
---- (Vacío)
Estoy haciendo pruebas pero no consigo hacerlo totalmente, estoy un poco oxidado... He conseguido borrar los archivos de las subcarpetas pero me siguen quedando las carpetas de dentro pero sin contenido...
He visto una solución en la que se propone crear un archivo .txt con el nombre de las subcarpetas y luego ir iterando borrando todo el contenido, pero no lo veo factible ya que se pueden crear nuevas subcarpetas de usuario y de no mantenerlo las borraría también... la idea sería crear una tarea programada que lo ejecutase cada X días y no tener que mantenerlo.
He pensado que si hacer esto no es posible o es muy complejo, borrar todos los archivos de la CarpetaPadre que no sean SubcarpetasUsuarios y quitar permisos de modificación sólo para la padre, aunque estaría bien poder dejar la opción aunque luego se borrara...
¿Me podrías echar una mano, por favor?
Pregunta bloqueada. Esta pregunta se migró desde la Comunidad de Soporte técnico de Microsoft. Puede votar si es útil, pero no puede agregar comentarios o respuestas ni seguir la pregunta.
Para ayudar a nuestros usuarios, utilizamos un servicio de traducción. Por favor, disculpe cualquier error gramatical.
¿Quieres decir que quieres eliminar una carpeta completa usando CMD?
Probar:
del /F /S /Q C:\Nombre de la carpeta
Buenas tardes,
Al final encontré una solución enfocándolo como me decías y a base de prueba-error:
@echo off
setlocal
set "CarpetaPadre=C:\ruta\a\CarpetaPadre"
REM Eliminar archivos en la CarpetaPadre
del /q "%CarpetaPadre%\*.*"
REM Iterar a través de cada subcarpeta y eliminar su contenido
for /d %%d in ("%CarpetaPadre%\*") do (
REM Eliminar archivos dentro de la subcarpeta
del /s /q "%%d\\*.\*"
REM Eliminar subcarpetas dentro de la subcarpeta
for /d %%s in ("%%d\\*") do (
rmdir /s /q "%%s"
)
)
endlocal
Muchas gracias por tu apoyo y el tiempo de responder a mi pregunta, me ha servido para encaminarlo.
Saludos
Buenas tardes,
Muchas gracias por la respuesta y tu ayuda. He probado con ese script pero me borra las subcarpetas de los usuarios y me sigue dejando los archivos que quería eliminar de la carpeta padre tal que así:
CarpetaPadre
---- Archivos: Word, Excel, etc.
Saludos
Hola, Stingray010. Lamento saber que tiene este problema y espero poder ayudarlo a encontrar una solución satisfactoria.
Claro, puedo ayudarte con eso. Para lograr lo que necesitas, puedes usar el comando del para eliminar archivos y el comando rd /s /q para eliminar directorios y su contenido de manera recursiva desde un archivo por lotes (.bat).
Aquí tienes un ejemplo de cómo podrías estructurar tu archivo .bat para lograr lo que buscas:
@echo off
cd "C:\ruta\a\tuCarpetaPadre" REM Cambia "C:\ruta\a\tuCarpetaPadre" por la ruta de tu CarpetaPadre
REM Elimina todos los archivos en la CarpetaPadre que no son subcarpetas de usuario
for %%i in (*) do (
if not exist "%%i\." (
del "%%i" /q
)
)
REM Elimina el contenido de las subcarpetas que incluyen otras carpetas y archivos
for /d %%i in (*) do (
rd /s /q "%%i"
)
echo Proceso completado.
Asegúrate de cambiar "C:\ruta\a\tuCarpetaPadre" por la ruta real de tu CarpetaPadre.
Este script primero elimina todos los archivos en la CarpetaPadre que no son subcarpetas de usuario. Luego, elimina el contenido de todas las subcarpetas que incluyen otras carpetas y archivos. El uso de /s y /q con el comando rd permite eliminar directorios y su contenido de manera recursiva sin solicitar confirmación.
Es importante tener en cuenta que este script eliminará permanentemente los archivos y directorios que coincidan con los criterios mencionados. Asegúrate de hacer una copia de seguridad de tus datos importantes antes de ejecutar el script.
Espero haber ayudado