Share via


Remove-Item

Elimina los elementos especificados.

Syntax

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

Description

El Remove-Item cmdlet elimina uno o varios elementos. Dado que es compatible con muchos proveedores, puede eliminar muchos tipos diferentes de elementos, incluidos archivos, carpetas, claves del Registro, variables, alias y funciones.

Ejemplos

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

Este comando elimina todos los archivos que tienen nombres que incluyen un punto ('.') de la carpeta "C:\Test". Dado que el comando especifica un punto, el comando no elimina carpetas ni archivos que no tienen ninguna extensión de nombre de archivo.

Remove-Item C:\Test\*.*

Ejemplo 2: Eliminación de algunos de los archivos de documento en una carpeta

Este comando elimina de la carpeta actual todos los archivos que tienen una extensión de nombre de archivo ".doc" y un nombre que no incluye 1. Usa el carácter comodín ('*') para especificar el contenido de la carpeta actual. Usa los parámetros Include y Exclude para especificar los archivos que se van a eliminar.

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

Ejemplo 3: Eliminación de archivos ocultos y de solo lectura

Este comando elimina un archivo que está oculto y de solo lectura. Usa el parámetro Path para especificar el archivo. Usa el parámetro Force para eliminarlo. Sin Force, no puede eliminar archivos ocultos o de solo lectura.

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

Ejemplo 4: Eliminación de archivos en subcarpetas de forma recursiva

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

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

En el Get-ChildItem comando , Path tiene un valor de '*', que representa el contenido de la carpeta actual. Usa Include para especificar el tipo de archivo CSV y usa Recurse para hacer que la recuperación sea recursiva.

Si intenta especificar el tipo de archivo, la ruta de acceso, como -Path *.csv, el cmdlet interpreta el asunto de la búsqueda como un archivo que no tiene elementos secundarios y se produce un error en Recurse .

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

Ejemplo 5: Eliminación de subclaves de forma recursiva

Este comando elimina la clave del Registro "OldApp" y todas sus subclaves y valores. Remove-Item Usa para quitar la clave. Se especifica la ruta de acceso, pero se omite el nombre de parámetro opcional (Path).

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: Eliminación de archivos con caracteres especiales

En el ejemplo siguiente se 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: Eliminación de un flujo de datos alternativo

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

El primer comando usa el parámetro dinámico Stream del Get-Item cmdlet para obtener la secuencia Zone.Identifier del archivo "Copy-Script.ps1".

El segundo comando usa el Stream parámetro dinámico del Remove-Item cmdlet para quitar la secuencia Zone.Identifier del archivo.

El tercer comando usa el parámetro dinámico Stream del Get-Item cmdlet para comprobar que se elimina la secuencia Zone.Identifier.

El cuarto cmdlet de comando Get-Item sin el parámetro Stream para comprobar que el archivo no se elimina.

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'.
At line:1 char:1
+ Get-Item 'C:\Test\Copy-Script.ps1' -Stream Zone.Identifier
+ [!INCLUDE[]()][!INCLUDE[]()][!INCLUDE[]()][!INCLUDE[]()][!INCLUDE[]()]~~
    + CategoryInfo          : ObjectNotFound: (C:\Test\Copy-Script.ps1:String) [Get-Item], FileNotFoundE
   xception
    + FullyQualifiedErrorId : AlternateDataStreamNotFound,Microsoft.PowerShell.Commands.GetItemCommand

Get-Item C:\Test\Copy-Script.ps1

Directory: C:\Test

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---          8/4/2011  11:15 AM       9436 Copy-Script.ps1

Parámetros

-Confirm

Le solicita su confirmación antes de ejecutar el cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Nota

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

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Exclude

Especifica los elementos que este cmdlet omite. El valor de este parámetro califica el parámetro Path. Escriba un elemento o patrón de ruta de acceso, como *.txt. Se permite el uso de caracteres comodín.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Filter

Especifica un filtro en el formato o idioma del proveedor. El valor de este parámetro califica el parámetro Path.

La sintaxis del filtro, incluido el uso de caracteres comodín, depende del proveedor. Los filtros son más eficaces que otros parámetros, ya que el proveedor los aplica cuando el cmdlet obtiene los objetos en lugar de que PowerShell filtre los objetos después de recuperarlos.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Obliga al cmdlet a quitar elementos que de lo contrario no se pueden cambiar, como archivos ocultos o de solo lectura o alias o variables de solo lectura. El cmdlet no puede quitar variables ni alias de constantes. La implementación varía en función del proveedor. Para obtener más información, consulte about_Providers. Incluso con el parámetro Force , el cmdlet no puede invalidar las restricciones de seguridad.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Include

Especifica los elementos que se van a eliminar. El valor de este parámetro califica el parámetro Path. Escriba un elemento de ruta de acceso o un patrón, como "*.txt". Se permite el uso de caracteres comodín.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LiteralPath

Especifica una ruta de acceso de los elementos que se van a quitar. A diferencia del parámetro Path, el valor de LiteralPath se usa exactamente como se escribe. Ninguno de los caracteres se interpreta como caracteres comodín. Si la ruta de acceso contiene caracteres de escape, escríbalos entre comillas simples. Las comillas simples indican a PowerShell que no interprete ningún carácter como secuencias de escape.

Type:String[]
Aliases:PSPath
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Path

Especifica una ruta de acceso de los elementos que se van a quitar. Se permite el uso de caracteres comodín.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-Recurse

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

Cuando se usa con el parámetro Include , es posible que el parámetro Recurse no elimine todas las subcarpetas o todos los elementos secundarios. Este es un problema conocido. Como solución alternativa, intente canalización de los resultados del Get-ChildItem -Recurse comando en Remove-Item, como se describe en "Ejemplo 4" en este tema.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Stream

El parámetro Stream es un parámetro dinámico que el proveedor FileSystem agrega a Remove-Item. Este parámetro solo funciona en las unidades del sistema de archivos.

Puede usar Remove-Item para eliminar un flujo de datos alternativo. Sin embargo, no es la manera recomendada para eliminar las comprobaciones de seguridad que bloquean los archivos que se descargan de Internet. Si comprueba que un archivo descargado es seguro, use el Unblock-File cmdlet .

Este parámetro se incorporó en Windows PowerShell 3.0.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseTransaction

Incluye el comando en la transacción activa. Este parámetro solo es válido cuando hay una transacción en curso. Para más información, consulte about_Transactions

Type:SwitchParameter
Aliases:usetx
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

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

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

String

Puede canalizar una cadena que contiene una ruta de acceso, pero no una ruta de acceso literal, a este cmdlet.

Salidas

None

Este cmdlet no genera resultados de ningún tipo.

Notas

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