Quiero eliminar todos los archivos de una estructura de carpetas, por lo que me queda una estructura de carpetas vacía.
¿Se puede lograr esto en scripting por lotes o VBScript ?
He intentado un comando por lotes muy básico, pero esto requirió que el usuario permitiera la eliminación de cada archivo. Esta no era una solución adecuada, ya que hay muchos cientos de archivos y esto aumentará enormemente con el tiempo.
¿Qué me puedes sugerir?
windows
script
powershell
batch-file
vbscript
BobJim
fuente
fuente
rd /s /q "c:\folder a
se realizará una eliminación recursiva en todos los archivos y carpetas dentroFolder A
Respuestas:
Esto se puede lograr usando PowerShell :
Este comando obtiene cada elemento secundario
$path
, ejecuta el método de eliminación en cada uno y es bastante rápido. La estructura de la carpeta se deja intacta.Si puede tener archivos sin extensión, use
en lugar.
Parece que el
-File
parámetro puede haberse agregado después de PowerShell v2. Si ese es el caso, entoncesDebería hacer el truco para los archivos que tienen una extensión.
Si no funciona, verifique si tiene una versión actualizada de Powershell
fuente
-Include *.*
no-Include .
, gran diferencia! :-)-Include .
? Ese es el problema.powershell --version
? ¿No pueden usar un número de versión con dígitos positivos? Es una locura. ¿Más de 1300 votos a favor para una pregunta sobre cómo encontrar el número de versión de un programa?Corto y suite PowerShell. No estoy seguro de cuál será la versión más baja de PS con la que funcionará.
fuente
rm *
ya que no es realmente recomendable forzar (el diálogo de confirmación tiene una opción "Sí a todo" de todos modos).Puedes hacerlo con el
del
comando:El
/S
cambio es eliminar solo archivos de forma recursiva.fuente
/P
opción para que le pida que confirme cada eliminación solo para verificar eso.attrib -s -r -h Folder\*.* /s /d
antes de eliminar. Y para permisos use eltakeown
comando.Leyendo entre líneas en su pregunta original, puedo ofrecer una línea alternativa de código BATCH que puede usar. Lo que esto hará cuando se ejecute es solo eliminar archivos que tengan más de 60 días de antigüedad. De esta manera, puede poner esto en una tarea programada y cuando se ejecuta elimina los archivos sobrantes que no necesita en lugar de eliminar todo el directorio. Puede cambiar de 60 a 5 días o incluso 1 día si lo desea. Esto no elimina carpetas.
fuente
Usando PowerShell:
fuente
Use PowerShell para eliminar un solo archivo o carpeta. Antes de ejecutar el comando Eliminar en powershell, debemos asegurarnos de que haya iniciado sesión en el servidor o PC con una cuenta que tenga acceso completo a los objetos que desea eliminar.
Con el ejemplo: http://dotnet-helpers.com/powershell-demo/how-to-delete-a-folder-or-file-using-powershell/
Uso de commnads de PowerShell para eliminar un archivo
El comando anterior ejecutará y eliminará el archivo "DummyfiletoDelete.txt" que se encuentra dentro de la ubicación "C: \ dotnet-helpers".
Uso de commnads de PowerShell para eliminar todos los archivos
Uso de commnads de PowerShell para eliminar todos los archivos y carpetas
-recurse
profundiza y encuentra muchos más archivos. El–recurse
parámetro permitirá que PowerShell elimine cualquier elemento secundario sin pedir permiso. Además, el parámetro –force se puede agregar para eliminar archivos ocultos o de solo lectura.Usando el comando -Force para eliminar archivos con fuerza
Uso del comando PowerShell para eliminar todos los archivos con fuerza
fuente
Prueba esto usando PowerShell. En este ejemplo, quiero eliminar todos los archivos .class:
fuente
En el Explorador de Windows, seleccione el directorio raíz que contiene todos los archivos y carpetas.
Buscar *
Ordenar por tipo (todas las carpetas estarán en la parte superior y todos los archivos enumerados debajo)
Seleccione todos los archivos y presione Eliminar.
Esto eliminará todos los archivos y preservará la estructura del directorio.
fuente
Eliminar todos los archivos del directorio y subdirectorios actuales pero dejando la estructura de carpetas.
(
/Q
) el interruptor es para preguntar al usuario si está bien para eliminarPrecaución : pruébelo sin el
/Q
para asegurarse de que no está eliminando nada valioso.fuente
Esta es la forma más fácil de IMO
Abra PowerShell, navegue al directorio (
cd
), LUEGO(Poof) todo se ha ido ...
Si desea eliminar en función de una extensión específica
Todas las otras respuestas parecen hacer esto más confuso de lo necesario.
fuente
fuente
Como complemento a las respuestas anteriores, en realidad no hay necesidad de usar Get-Childitem y pasar el resultado a la tubería en las respuestas anteriores, porque la palabra clave -Incluir está incluida en el comando Remove-Item
Uno puede simplemente:
Remove-Item -Include " . " "C: \ Temp" -Recurse
fuente