Búsqueda de sitios web

Remove-Item (Microsoft.PowerShell.Management)


Remove-Item

Módulo:
Microsoft.PowerShell.Management

Elimina los elementos especificados.

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>]
Remove-Item
      [-Path] <String[]>
      [-Filter <String>]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-Recurse]
      [-Force]
      [-Credential <PSCredential>]
      [-WhatIf]
      [-Confirm]
      [-DeleteKey]
      [<CommonParameters>]
Remove-Item
      -LiteralPath <String[]>
      [-Filter <String>]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-Recurse]
      [-Force]
      [-Credential <PSCredential>]
      [-WhatIf]
      [-Confirm]
      [-DeleteKey]
      [<CommonParameters>]
Remove-Item
      [-Path] <string[]>
      [-Filter <string>]
      [-Include <string[]>]
      [-Exclude <string[]>]
      [-Recurse]
      [-Force]
      [-Credential <pscredential>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-Item
      -LiteralPath <string[]>
      [-Filter <string>]
      [-Include <string[]>]
      [-Exclude <string[]>]
      [-Recurse]
      [-Force]
      [-Credential <pscredential>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Descripción

El cmdlet Remove-Item elimina uno o más elementos. Debido a que es compatible con muchos proveedores, puede eliminar muchos tipos diferentes de elementos, incluidos archivos, carpetas, claves de registro, variables, alias y funciones.

Ejemplos

Ejemplo 1: eliminar archivos que tengan cualquier extensión de archivo

Este ejemplo elimina todos los archivos con nombres que incluyen un punto (.) de la carpeta C:\Test. Debido a que el comando especifica un punto, el comando no elimina carpetas ni archivos que no tienen extensión de archivo.

Remove-Item C:\Test\*.*

Ejemplo 2: eliminar archivos de documentos en una carpeta

Este ejemplo elimina de la carpeta actual todos los archivos que tienen una extensión de archivo .doc y un nombre que no incluye *1*.

Remove-Item * -Include *.doc -Exclude *1*

Utiliza el carácter comodín (*) para especificar el contenido de la carpeta actual. Utiliza los parámetros Incluir y Excluir para especificar los archivos que se eliminarán.

Ejemplo 3: eliminar archivos ocultos de solo lectura

Este comando elimina un archivo que está oculto y de solo lectura.

Remove-Item -Path C:\Test\hidden-RO-file.txt -Force

Utiliza el parámetro Path para especificar el archivo. Utiliza el parámetro Force para eliminarlo. Sin Force, no puedes eliminar archivos de solo lectura u ocultos.

Ejemplo 4: eliminar archivos en subcarpetas de forma recursiva

Este comando elimina todos los archivos CSV de la carpeta actual y todas las subcarpetas de forma recursiva.

Debido a que el parámetro Recurse en Remove-Item tiene un problema conocido, el comando en este ejemplo usa Get-ChildItem para obtener los archivos deseados y luego usa el operador de canalización para pasarlos a Remove-Item.

Get-ChildItem * -Include *.csv -Recurse | Remove-Item

En el comando Get-ChildItem, Path tiene un valor de (*), que representa el contenido de la carpeta actual. Utiliza Include para especificar el tipo de archivo CSV y utiliza Recurse para hacer que la recuperación sea recursiva. Si intenta especificar el tipo de archivo en la ruta, como -Path *.csv, el cmdlet interpreta que el tema de la búsqueda es un archivo que no tiene elementos secundarios y Recurse falla.

Nota

Este comportamiento se solucionó en las versiones de Windows 1909 y posteriores.

Ejemplo 5: eliminar subclaves de forma recursiva

Este comando elimina la clave de registro "OldApp" y todas sus subclaves y valores. Utiliza Remove-Item para eliminar la clave. Se especifica la ruta, pero se omite el nombre del parámetro opcional (Ruta).

El parámetro Recurse elimina todo el contenido de la clave "OldApp" de forma recursiva. Si la clave contiene subclaves y omite el parámetro Recurse, se le pedirá que confirme que desea eliminar el contenido de la clave.

Remove-Item HKLM:\Software\MyCompany\OldApp -Recurse

Ejemplo 6: eliminar archivos con caracteres especiales

El siguiente ejemplo muestra cómo eliminar archivos que contienen caracteres especiales como corchetes o paréntesis.

Get-ChildItem

Directory: C:\temp\Downloads

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a---          6/1/2018  12:19 PM           1362 myFile.txt
-a---          6/1/2018  12:30 PM           1132 myFile[1].txt
-a---          6/1/2018  12:19 PM           1283 myFile[2].txt
-a---          6/1/2018  12:19 PM           1432 myFile[3].txt

Get-ChildItem | Where-Object Name -Like '*`[*'

Directory: C:\temp\Downloads

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a---          6/1/2018  12:30 PM           1132 myFile[1].txt
-a---          6/1/2018  12:19 PM           1283 myFile[2].txt
-a---          6/1/2018  12:19 PM           1432 myFile[3].txt

Get-ChildItem | Where-Object Name -Like '*`[*' | ForEach-Object { Remove-Item -LiteralPath $_.Name }
Get-ChildItem

Directory: C:\temp\Downloads

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a---          6/1/2018  12:19 PM           1362 myFile.txt

Ejemplo 7: eliminar un flujo de datos alternativo

Este ejemplo muestra cómo utilizar el parámetro dinámico Stream del cmdlet Remove-Item para eliminar un flujo de datos alternativo. El parámetro de transmisión se introduce en Windows PowerShell 3.0.

Get-Item C:\Test\Copy-Script.ps1 -Stream Zone.Identifier

FileName: \\C:\Test\Copy-Script.ps1

Stream                   Length
------                   ------
Zone.Identifier              26

Remove-Item C:\Test\Copy-Script.ps1 -Stream Zone.Identifier
Get-Item C:\Test\Copy-Script.ps1 -Stream Zone.Identifier

Get-Item : Could not open alternate data stream 'Zone.Identifier' of file 'C:\Test\Copy-Script.ps1'.

El parámetro Stream Get-Item obtiene la secuencia Zone.Identifier del archivo Copy-Script.ps1. Remove-Item utiliza el parámetro Stream para eliminar la secuencia Zone.Identifier del archivo. Finalmente, el cmdlet Get-Item muestra que se eliminó la secuencia Zone.Identifier.

Parámetros

-Confirm

Le solicita confirmación antes de ejecutar el cmdlet. Para obtener más información, consulte los siguientes artículos:

  • about_Preference_Variables
  • about_Functions_CmdletBindingAttribute
Tipo :

SwitchParameter

Alias:

cf

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Credential

Nota

Este parámetro no es compatible con ningún proveedor instalado con PowerShell. Para hacerse pasar por otro usuario o elevar sus credenciales al ejecutar este cmdlet, use Invoke-Command.

Tipo :

PSCredencial

Posición:

Nombrado

Valor predeterminado:

Usuario actual

Requerido:

False

Aceptar entrada de canalización:

True

Aceptar caracteres comodín:

False

-DeleteKey

Este es un parámetro dinámico puesto a disposición por el proveedor del Certificado. El proveedor de certificado y este parámetro solo están disponibles en plataformas Windows.

Cuando se proporciona, el cmdlet elimina la clave privada cuando se elimina el certificado.

Para obtener más información, consulte about_Certificate_Provider.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Exclude

Especifica, como una matriz de cadenas, uno o más elementos que este cmdlet excluye en la operación. El valor de este parámetro califica el parámetro Path. Introduzca un elemento o patrón de ruta, como *.txt. Se permiten caracteres comodín. El parámetro Excluir es efectivo solo cuando el comando incluye el contenido de un elemento, como C:\Windows\*, donde el carácter comodín especifica el contenido del C:\Windows.

Cuando se utiliza Recurse con Exclude, Exclude solo filtra los resultados del directorio actual. Si hay archivos que coinciden con el patrón Excluir en las subcarpetas, esos archivos se eliminan junto con su directorio principal.

Tipo :

String[]

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

True

-Filter

Especifica un filtro para calificar el parámetro Path. El proveedor FileSystem es el único proveedor de PowerShell instalado que admite el uso de filtros. Puede encontrar la sintaxis del idioma de filtro FileSystem en about_Wildcards. Los filtros son más eficientes que otros parámetros, porque el proveedor los aplica cuando el cmdlet obtiene los objetos en lugar de que PowerShell filtre los objetos después de recuperarlos.

Tipo :

String

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

True

-Force

Obliga al cmdlet a eliminar elementos que de otro modo no se pueden cambiar, como archivos ocultos o de solo lectura, o alias o variables de solo lectura. El cmdlet no puede eliminar variables o alias constantes. La implementación varía de un proveedor a otro. Para obtener más información, consulte about_Providers. Incluso utilizando el parámetro Force, el cmdlet no puede anular las restricciones de seguridad.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Include

Especifica, como una matriz de cadenas, uno o varios elementos que este cmdlet incluye en la operación. El valor de este parámetro califica el parámetro Path. Introduzca un elemento de ruta o patrón, como "*.txt". Se permiten caracteres comodín. El parámetro Incluir es efectivo solo cuando el comando incluye el contenido de un elemento, como C:\Windows\*, donde el carácter comodín especifica el contenido del C:\Windows.

Tipo :

String[]

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

True

-LiteralPath

Especifica una ruta a una o más ubicaciones. El valor de LiteralPath se utiliza exactamente tal como se escribe. Ningún carácter se interpreta como comodín. Si la ruta incluye caracteres de escape, escríbala entre comillas simples. Las comillas simples le indican a PowerShell que no interprete ningún carácter como secuencia de escape.

Para obtener más información, consulte about_Quoting_Rules.

Tipo :

String[]

Alias:

PSPath, LP

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

True

Aceptar entrada de canalización:

True

Aceptar caracteres comodín:

False

-Path

Especifica una ruta de los elementos que se eliminan. Se permiten caracteres comodín.

Tipo :

String[]

Posición:

0

Valor predeterminado:

None

Requerido:

True

Aceptar entrada de canalización:

True

Aceptar caracteres comodín:

True

-Recurse

Indica que este cmdlet elimina los elementos en las ubicaciones especificadas y en todos los elementos secundarios de las ubicaciones.

Es posible que el parámetro Recurse no elimine todas las subcarpetas o todos los elementos secundarios. Este es un problema conocido.

Nota

Este comportamiento se solucionó en las versiones de Windows 1909 y posteriores.

Tipo :

SwitchParameter

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

-Stream

Este es un parámetro dinámico puesto a disposición por el proveedor FileSystem. Este parámetro sólo está disponible en Windows. Este parámetro no se puede utilizar en combinación con el parámetro Recurse.

Puede utilizar Remove-Item para eliminar un flujo de datos alternativo, como Zone.Identifier. Sin embargo, no es la forma recomendada de eliminar los controles de seguridad que bloquean los archivos que se descargan de Internet. Si verifica que un archivo descargado es seguro, utilice el cmdlet Unblock-File.

Este parámetro se introdujo en Windows PowerShell 3.0. A partir de Windows PowerShell 7.2, Remove-Item puede eliminar flujos de datos alternativos de directorios y archivos.

Para obtener más información, consulte about_FileSystem_Provider.

Tipo :

String[]

Posición:

Nombrado

Valor predeterminado:

None

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

True

-WhatIf

Muestra lo que sucedería si se ejecuta el cmdlet. El cmdlet no se ejecuta.

Tipo :

SwitchParameter

Alias:

wi

Posición:

Nombrado

Valor predeterminado:

False

Requerido:

False

Aceptar entrada de canalización:

False

Aceptar caracteres comodín:

False

Entradas

Cadena

Puede canalizar una cadena que contenga una ruta, pero no una ruta literal, a este cmdlet.

Salidas

Ninguno

Este cmdlet no devuelve ningún resultado.

Notas

PowerShell incluye los siguientes alias para Remove-Item:

  • Todas las plataformas:

      del
      erase
      rd
      ri
  • Windows:

      rm
      rmdir

El cmdlet Remove-Item está diseñado para funcionar con los datos expuestos por cualquier proveedor. Para enumerar los proveedores disponibles en su sesión, escriba Get-PsProvider. Para obtener más información, consulte about_Providers.

Cuando intenta eliminar una carpeta que contiene elementos sin utilizar el parámetro Recurse, el cmdlet solicita confirmación. El uso de -Confirm:$false no suprime el mensaje. Esto es por diseño.

Artículos relacionados