Quiero eliminar todo el contenido de una carpeta especificada en Windows 7 a través de un archivo por lotes. Mi problema es que 'del' o 'borrar' solo elimina los archivos, no las carpetas y 'rmdir' o 'rd' siempre eliminan la carpeta especificada con su contenido, pero solo quiero eliminar el contenido, no la carpeta en sí . Probé el comando ' rmdir /S /Q "C:\Share\*"
' que me dio un error de sintaxis.
¿Cuál es la forma correcta de hacer esto?
Estoy trabajando en Windows 7 Professional de 64 bits y tengo permisos de administrador.
fuente
del
no es necesario.rd/s/q
eliminará tanto los archivos como las subcarpetas.del
está principalmente allí para cualquier archivo en la carpeta raíz, aunque podría eliminar el interruptor de recursión.Obtiene un "Error de sintaxis" porque
rmdir
solo acepta nombres completos, no comodines. (Encmd.exe
, la expansión de comodines se deja a los programas individuales; no todos lo hacen).Si tiene muchos directorios comenzando
Share...
, use unfor
bucle.fuente
Pruebe esto en un símbolo del sistema:
fuente
Qué pasa ?
EDITAR: por supuesto, esta solución solo es aplicable cuando puede tolerar una ausencia momentánea de la carpeta.
fuente
for /f
en casos similares al mío. Solo quería compartirEsto no funciona si los subdirectorios contienen otros directorios que contienen espacios.
Para que esto funcione, necesitaba citar la cadena final, como esta
Aparentemente, esto hace que el comando funcione en la cadena citada en lugar de solo la cadena en sí.
fuente
Intentaría esto en la carpeta donde se deben eliminar todas las subcarpetas pero la raíz (y los archivos en la raíz) se dejan como están: para / D% v en (*) do rd / s / q% v
for / D coincide con los directorios y rd / s / q los elimina a la vez
fuente
simplemente:
rmdir / s / q "ruta"
mkdir "camino"
fuente