Cómo eliminar el contenido de una carpeta en PowerShell
Es fácil eliminar el contenido de una carpeta usando PowerShell. ¿Tiene algún requisito similar? En esta publicación de blog, exploraremos diferentes métodos para eliminar el contenido de una carpeta usando PowerShell con scripts completos.
Para eliminar el contenido de una carpeta en PowerShell, use el cmdlet Remove-Item con la ruta a la carpeta y un carácter comodín. Por ejemplo, Remove-Item -Path “C:\Your\Target\Directory*” -Recurse eliminará todos los archivos y subdirectorios de la carpeta especificada. Utilice el parámetro -Force para suprimir las solicitudes y -Confirm:$false para evitar solicitudes de confirmación.
Método 1: usar Eliminar elemento
En PowerShell, puede usar el cmdlet Remove-Item para eliminar archivos y carpetas de un directorio. Para eliminar todos los archivos dentro de una carpeta, puede utilizar el siguiente script de PowerShell:
Get-ChildItem -Path "C:\MyFolder\Folder-1\" -File | Remove-ItemEste script enumera todos los archivos en el directorio especificado y los canaliza a Remove-Item, que los elimina. Tenga en cuenta que este comando no elimina subdirectorios ni su contenido.
Puede ver el resultado en la captura de pantalla a continuación después de ejecutar el script usando el código VS.
Si desea eliminar todos los archivos y subdirectorios usando PowerShell, puede agregar el parámetro -Recurse:
Get-ChildItem -Path "C:\MyFolder\Folder-1\" -Recurse | Remove-ItemSin embargo, tenga cuidado con el parámetro -Recurse, ya que eliminará todo lo que esté dentro del directorio, incluidos todos los archivos y carpetas anidados.
Método 2: usar Remove-Item con -Include y -Exclude
Si desea eliminar tipos específicos de archivos del directorio, consulte el siguiente script de PowerShell. Puede utilizar los parámetros -Include y -Exclude con el cmdlet de PowerShell Remove-Item para eliminar archivos específicos.
Por ejemplo, para eliminar todos los archivos .txt en un directorio, ejecute el siguiente script de PowerShell:
Get-ChildItem -Path "C:\MyFolder\" -Include *.txt | Remove-ItemPara eliminar todo excepto los archivos .txt del directorio usando PowerShell, escriba el siguiente script.
Get-ChildItem -Path "C:\MyFolder\" -Exclude *.txt | Remove-ItemMétodo 3: usar Quitar elemento directamente
Puede usar Remove-Item directamente con el parámetro -Path y un comodín para eliminar todo el contenido dentro de una carpeta usando PowerShell.
Remove-Item -Path "C:\MyFolder\*" -RecurseEste comando elimina todos los archivos y subdirectorios en la ruta especificada. El carácter comodín * representa todos los elementos del directorio.
Método 4: borrar el contenido del archivo sin eliminar archivos
Si desea borrar el contenido de los archivos sin eliminarlos, puede utilizar el cmdlet Clear-Content. Esto es útil para archivos de registro u otros escenarios en los que necesita conservar el archivo pero no los datos que contiene.
Get-ChildItem -Path "C:\MyFolder\" -File | Clear-ContentEste script de PowerShell recorrerá cada archivo del directorio y borrará su contenido, dejando archivos vacíos.
Método 5: eliminar archivos anteriores a una fecha determinada
Si desea eliminar archivos que tienen más de una fecha determinada utilizando PowerShell. Esto se puede lograr agregando un filtro de fecha al comando Get-ChildItem:
$limit = (Get-Date).AddDays(-30)
Get-ChildItem -Path "C:\MyFolder\" -File | Where-Object { $_.LastWriteTime -lt $limit } | Remove-ItemEste script de PowerShell elimina archivos en el directorio especificado en los que se escribieron por última vez hace más de 30 días.
Método 6: eliminar carpetas vacías
Después de eliminar archivos, es posible que le queden subdirectorios vacíos. Para eliminarlos también, puede utilizar el siguiente script de PowerShell:
Get-ChildItem -Path "C:\MyFolder\" -Directory | Where-Object { $_.GetFileSystemInfos().Count -eq 0 } | Remove-ItemEsto buscará y eliminará todos los subdirectorios vacíos dentro del directorio de destino.
Manejo de errores y confirmaciones
Al eliminar archivos, es posible que encuentre errores o solicitudes de confirmación. Para suprimirlos, puede utilizar los parámetros -Force y -Confirm:$false:
Remove-Item -Path "C:\MyFolder\*" -Recurse -Force -Confirm:$falseEste comando eliminará por la fuerza el contenido sin solicitar confirmación.
Conclusión
Espero que este tutorial te ayude a eliminar el contenido de una carpeta usando PowerShell. Cubrimos diferentes escenarios como:
- Eliminar contenido de una carpeta usando Remove-Item
- Eliminar contenidos de un directorio usando Remove-Item con -Include y -Exclude
- Borrar el contenido del archivo sin eliminar archivos usando PowerShell
- Eliminar archivos anteriores a una fecha determinada de una carpeta usando PowerShell
- Eliminar carpetas vacías de un directorio usando PowerShell
