Eliminar carpeta en PowerShell
-
Use el cmdlet
Remove-item
para eliminar una carpeta en PowerShell - Use el símbolo del sistema para eliminar una carpeta en PowerShell
-
Use el método de objeto
FileSystem
para eliminar una carpeta en PowerShell - Uso de .Net Class para eliminar una carpeta en PowerShell
La acción de eliminación de carpetas en PowerShell elimina una carpeta de una ubicación determinada, ya sea una ruta local o compartida.
Este artículo se centra en los diferentes métodos para eliminar una carpeta mediante PowerShell.
Use el cmdlet Remove-item
para eliminar una carpeta en PowerShell
Se pueden eliminar uno o más objetos con el cmdlet Remove-Item
.
Podemos usar dos sintaxis diferentes para la eliminación. Sin embargo, debe tenerse en cuenta que estos dos se pueden usar por separado pero no combinados.
- Sintaxis 1
Remove-Item
[-Path] <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-Stream <String[]>]
[<CommonParameters>]
- Sintaxis 2
Remove-Item
-LiteralPath <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-Stream <String[]>]
[<CommonParameters>]
Tanto -Path
como -Literalpath
no se pueden usar en la misma sintaxis.
Parámetros Eliminar elemento
El nombre y la descripción de los parámetros más comunes utilizados se dan a continuación.
Nombre | Descripción |
---|---|
-Path |
Se especifica la ubicación de las cosas que se eliminarán. No hay restricciones en el uso de caracteres comodín. |
-LiteralPath |
Ruta especificada a una o más ubicaciones |
-Confirm |
Se solicita confirmación antes de ejecutar cmdlet |
-Exclude |
Elementos que el cmdlet excluye durante la operación |
-Credential |
Los proveedores instalados de PowerShell no admiten este parámetro. Use Invoke-Command para hacerse pasar por otro usuario o escalar sus privilegios cuando use este cmdlet. |
-Filter |
filtro para validar el parámetro de ruta |
-Force |
Forzar la eliminación de objetos que no se pueden modificar de otro modo, como archivos/alias o variables privados o de solo lectura. |
-Include |
Elementos que incluye el cmdlet durante la operación |
-Recurse |
Este cmdlet descarta los objetos en las ubicaciones dadas, así como todos los elementos secundarios de las ubicaciones. |
-Stream |
El argumento Stream es un parámetro dinámico agregado a Remove-Item por el proveedor de FileSystem. Esta configuración solo se aplica a las unidades con un sistema de archivos. |
-WhatIf |
Muestra lo que sucede si se ejecuta el cmdlet. |
Veamos algunos ejemplos junto con diferentes usos de sintaxis,
Ejemplo 1:
Aquí eliminaremos la carpeta test1
usando el comando mencionado a continuación, y al final, puede ver que la carpeta se eliminará.
Remove-Item 'D:\temp\Test1'
Ejemplo 2:
Borraremos recursivamente la carpeta test2. PowerShell comprueba si el directorio está vacío en el ejemplo anterior. Simplemente eliminará la carpeta en este escenario.
Remove-Item 'D:\temp\test2' -Recurse
Ejemplo 3: Usar -LiteralPath
en -RemoveItem
El -LiteralPath
se utiliza junto con los parámetros -Force
y -Recurse
. Por lo tanto, elimina a la fuerza los elementos junto con la carpeta en la ruta dada sin ningún aviso de confirmación.
Remove-Item -LiteralPath "foldertodelete" -Force -Recurse
Ejemplo 4: Remove-item
como tubería
Primero usamos Get-ChildItem para recuperar las carpetas y los archivos, y luego usamos Remove-Item
para canalizar los resultados del comando anterior.
Get-ChildItem C:\Temp\TestFolder\ | Remove-Item -Recurse -Force -Verbose
El único problema aquí es que solo elimina el contenido de la carpeta pero no la carpeta en sí; por lo tanto, se deben agregar otros fragmentos de código para eliminar la carpeta.
Use el símbolo del sistema para eliminar una carpeta en PowerShell
La mayoría de los usuarios de la línea de comandos usarán el comando rmdir
para eliminar o eliminar carpetas. La sintaxis es rmdir
junto con la ruta de la carpeta, como se muestra a continuación.
rmdir C:\Temp\TestFolder
Use el método de objeto FileSystem
para eliminar una carpeta en PowerShell
Hay diferentes opciones disponibles para eliminar una carpeta en PowerShell. Uno de ellos es el método de objetos del sistema de archivos. Hay dos fases en este procedimiento. En el primer paso, construiremos un objeto de sistema de archivos; a continuación, en el segundo paso, usaremos la función DeleteFolder()
para destruir la carpeta del objeto asociado.
Entonces, para hacer esto, primero cree un archivo test.ps1
y luego agregue los siguientes comandos que se detallan a continuación.
$object = New-Object -ComObject Scripting.FileSystemObject
$object.DeleteFolder("C:\Temp\TestFolder")
Finalmente, ejecute el archivo test.ps1
y eliminará nuestra carpeta deseada.
Uso de .Net Class para eliminar una carpeta en PowerShell
En PowerShell, el framework .NET utiliza la clase System.IO.Directory
y el método Delete()
para eliminar una carpeta. Si la carpeta proporcionada no está vacía, esta operación generará una excepción:
> [System.IO.Directory]::Delete("C:\Temp\TestFolder")
Para eliminar esta carpeta no vacía, use la opción $true
en la función Delete()
:
System.IO.Directory]::Delete("C:\Temp\TestFolder", $true)
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.