Eliminar carpeta en PowerShell

Migel Hewage Nimesha 30 enero 2023
  1. Use el cmdlet Remove-item para eliminar una carpeta en PowerShell
  2. Use el símbolo del sistema para eliminar una carpeta en PowerShell
  3. Use el método de objeto FileSystem para eliminar una carpeta en PowerShell
  4. Uso de .Net Class para eliminar una carpeta en PowerShell
Eliminar 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:

&gt [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)
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

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.

Artículo relacionado - PowerShell Directory