Búsqueda de sitios web

Carpeta de eliminación de PowerShell | ¿Cómo eliminar carpetas en PowerShell?


Introducción a la carpeta de eliminación de PowerShell

La operación de eliminación de carpetas de PowerShell consiste en eliminar la carpeta de la ubicación especificada, ya sea su ruta local o la ruta compartida utilizando el cmdlet Remove-Item u otro enfoque .Net, que elimina las carpetas o subcarpetas y su contenido y utiliza el método específico. cambia para tratar con los diferentes tipos de atributos de carpeta, como solo lectura, ocultos, etc., para eliminarlos.

Sintaxis de la carpeta de eliminación de PowerShell

PowerShell utiliza varios métodos para eliminar las carpetas del sistema operativo Windows.

1. Método de eliminación de elementos de PowerShell

Sintaxis:

Remove-Item

[-Path] <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-Stream <String[]>]
[<CommonParameters>]

Remove-Item

-LiteralPath <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-Stream <String[]>]
[<CommonParameters>]

De los conjuntos anteriores, puedes usar la combinación de uno solo. No puedes usar -Path y -LiteralPath ambos en el mismo comando.

2. Símbolo del sistema

  • Usando el comando rmdir
rmdir [<drive>:]<path> [/s [/q]]
  • Usando del
del [/p] [/f] [/s] [/q] [/a[:]<attributes>] <names>
erase [/p] [/f] [/s] [/q] [/a[:]<attributes>] <names>

3. Método del objeto del sistema de archivos

Usando el método del objeto FileSystem. Podemos crear un objeto de sistema de archivos y usar el método DeleteFolder.

object.DeleteFolder folderspec, [ force ]

4. Uso del enfoque de clase .Net

[System.IO.Directory]::Delete(String)
[System.IO.Directory]::Delete(String,Boolean)

¿Cómo eliminar carpetas en PowerShell?

Como se muestra en la sintaxis, PowerShell utiliza varios métodos como el comando nativo Eliminar elemento, los comandos cmd rmdir y del, el método de objeto del sistema de archivos y el enfoque .Net para eliminar los archivos de la carpeta.

La carpeta del sistema de ventana tiene varios atributos asociados, como solo lectura, oculto, archivo, etc., y para eliminarlos es posible que necesitemos pasar varios parámetros en el cmdlet.

Ejemplos para implementar la carpeta de eliminación de PowerShell

A continuación analizamos ejemplos de eliminación de carpetas de PowerShell:

Ejemplo #1

Remove-Item para eliminar la carpeta con subcarpetas y archivos

Considere que tenemos una carpeta almacenada en la ubicación C:\temp\Test\ y necesitamos eliminar esa carpeta usando el comando Quitar elemento. La carpeta contiene los siguientes elementos.

Comando:

Get-ChildItem C:\Temp\Test\

Salida:

Para eliminar los elementos,

Remove-Item C:\Temp\Test\ -Verbose

Una vez que ejecute este comando, le pedirá confirmación.

Puede presionar "Sí" cada vez o "Sí a todos" para confirmar todos los archivos y carpetas.

Este mensaje se genera porque la carpeta Prueba contiene las subcarpetas y archivos, use el parámetro -Recurse para eliminar todos los archivos y carpetas internos y el parámetro -Force para eliminarlos con fuerza.

Remove-Item C:\Temp\Test\ -Recurse -Force -Verbose

Salida:

Ejemplo #2

Utilice el parámetro -WhatIF con Remove-Item para evitar la eliminación incorrecta de carpetas. Podemos usar el parámetro -WhatIf que muestra qué archivos y carpetas se eliminarán para evitar la eliminación incorrecta de carpetas. Vea el ejemplo a continuación.

Remove-Item C:\Temp\Test\ -Recurse -Force -WhatIf -Verbose

Salida:

Si tiene permiso para eliminar la carpeta remota, puede proporcionar la ruta compartida de la carpeta allí. Por ejemplo,

Remove-Item '\\Computer1\C$\Temp\Test\' -Recurse -Force -WhatIf -Verbose

El comando anterior eliminará la carpeta C:\temp\Test en la computadora remota Computadora1.

Ejemplo #3

Utilice Remove-Item como canalización. Podemos recuperar los archivos y el contenido de la carpeta con Get-ChildItem y Remove-Item para canalizar la salida del primer comando para eliminar la carpeta.

Get-ChildItem C:\Temp\Test\ | Remove-Item -Recurse -Force -Verbose

El problema con este enfoque es que elimina el contenido de la carpeta pero no la carpeta en sí. Necesita agregar más lógica para eliminar, pero si desea eliminar la subcarpeta específica dentro de la carpeta principal, entonces este método es útil y lo veremos en el ejemplo 8.

Ejemplo #4

Usando comandos cmd para eliminar la carpeta.

  • Usando del

Cuando usamos el comando Supr, solo elimina los archivos y carpetas internos y deja la carpeta original vacía.

del c:\Temp\Test\

Cuando ejecute este comando para eliminar el contenido de la carpeta de prueba, se le solicitará que lo elimine.

Para eliminar las subcarpetas, incluidos los archivos de solo lectura, utilice con fuerza el siguiente comando.

c:\>del c:\Temp\Test /s /q /f

Salida:

  • Utilice rmdir para eliminar la carpeta en lugar de del
rmdir C:\Temp\Test

Cuando ejecute el comando anterior, recibirá el siguiente mensaje porque el directorio contiene las subcarpetas y los archivos.

Utilice el siguiente comando para eliminar la carpeta, las subcarpetas y los archivos especificados en modo silencioso.

c:\>rmdir C:\Temp\Test /s /q

Ejemplo #5

Usando el método del objeto del sistema de archivos. También podemos eliminar la carpeta usando ComObject FileSystemObject como se muestra a continuación.

$obj = New-Object -ComObject Scripting.FileSystemObject
$obj.DeleteFolder("C:\Temp\Test")

Ejemplo #6

Usando el método de clase .Net. Podemos usar la clase .Net System.IO.Directory con el método Delete() para eliminar la carpeta.

Por ejemplo:

PS C:\> [System.IO.Directory]::Delete("C:\Temp\Test")

Cuando ejecuta el comando anterior, genera una excepción de que el directorio no está vacío porque el comando anterior está destinado a eliminar el directorio vacío.

Entonces, para eliminar la carpeta, agregue el segundo parámetro $true para eliminar la carpeta que no está vacía.

[System.IO.Directory]::Delete("C:\Temp\Test", $true)

Ejemplo #7

Usando PowerShell DSC para eliminar la carpeta. Utilizando el método declarativo DSC para eliminar la carpeta.

Configuration FolderDelete{
Node Localhost{
File TestFolderDelete{
DestinationPath = 'C:\Temp\Test'
Type = 'Directory'
Ensure = 'Absent'
Force = $true
}
}
}
FolderDelete -OutputPath C:\Temp\FolderDelete\ -Verbose
Start-DscConfiguration -Path C:\Temp\FolderDelete -Wait -Force -Verbose

Salida:

El comando anterior almacenará la configuración en C:\temp\FolderDelete y se asegurará de que la ruta exista antes de ejecutar el script y generará el archivo MOF.

También puede proporcionar los nodos remotos en la sección Nodo como

Node @("Computer1","Computer2")

Ejemplo #8

Elimine las carpetas ocultas usando PowerShell. Para eliminar las carpetas ocultas, primero debemos recuperar la carpeta oculta usando Get-ChildItem.

Get-ChildItem C:\Temp\Test\ -Hidden

Salida:

Agregaremos Remove-Item como Pipeline para eliminar esa carpeta oculta.

Get-ChildItem C:\Temp\Test\ -Hidden | Remove-Item -Force -Recurse -Verbose

Salida:

Conclusión

El Explorador de archivos de Windows se utiliza para interactuar con los archivos y carpetas del sistema de archivos, pero por diversas razones necesitamos eliminar la carpeta cuando escribimos un script o para el mantenimiento regular del sistema, necesitamos eliminar las carpetas para liberar espacio adicional. , podemos utilizar los métodos descritos en este artículo.

Artículos relacionados