Remove-Item
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>]
Description
El cmdlet Remove-Item
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 archivo
En este ejemplo se eliminan todos los archivos con 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 archivo.
Remove-Item C:\Test\*.*
Ejemplo 2: Eliminación de archivos de documento en una carpeta
En este ejemplo se 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*
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.
Ejemplo 3: Eliminar archivos ocultos y de solo lectura
Este comando elimina un archivo oculto y de solo lectura.
Remove-Item -Path C:\Test\hidden-RO-file.txt -Force
Usa el parámetro path para especificar el archivo. Usa el parámetro Force para eliminarlo. Sin Force, no se pueden eliminar archivos de solo lectura u ocultos.
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 en 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
.
Get-ChildItem * -Include *.csv -Recurse | Remove-Item
En el comando Get-ChildItem
, la ruta de acceso tiene un valor de (*
), que representa el contenido de la carpeta actual. Usa incluir para especificar el tipo de archivo CSV y usa Recurse para que la recuperación sea recursiva. Si intenta especificar el tipo de archivo en la ruta de acceso, como -Path *.csv
, el cmdlet interpreta que el objeto de la búsqueda es un archivo que no tiene elementos secundarios, y Recurse falla.
Nota
Este comportamiento se corrigió en las versiones 1909 y posteriores de Windows.
Ejemplo 5: Eliminar subclaves de forma recursiva
Este comando elimina la clave del Registro "OldApp" y todas sus subclaves y valores. Usa Remove-Item
para quitar la clave. Se especifica la ruta de acceso, pero se omite el nombre del parámetro opcional (Ruta de acceso).
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 Stream parámetro dinámico del cmdlet Remove-Item
para eliminar un flujo de datos alternativo. El parámetro stream se presenta 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 StreamGet-Item
obtiene la secuencia de Zone.Identifier
del archivo de Copy-Script.ps1
.
Remove-Item
usa el parámetro Stream para quitar la secuencia de Zone.Identifier
del archivo. Por último, el cmdlet Get-Item
muestra que se eliminó la secuencia de Zone.Identifier
.
Parámetros
-Confirm
Le pide confirmación antes de ejecutar el cmdlet. Para obtener más información, consulte los artículos siguientes:
Tipo: | SwitchParameter |
Alias: | cf |
Posición: | Named |
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 suplantar a otro usuario o elevar las credenciales al ejecutar este cmdlet, use Invoke-Command.
Tipo: | PSCredential |
Posición: | Named |
Valor predeterminado: | Current user |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-DeleteKey
Se trata de un parámetro dinámico proporcionado por el proveedor del Certificado . El proveedor del Certificado y este parámetro solo están disponibles en plataformas de 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: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Exclude
Especifica, como matriz de cadenas, un elemento o elementos que este cmdlet excluye en la operación. El valor de este parámetro determina el carácter del parámetro Path. Escriba un elemento de ruta o patrón, como *.txt
. Se permite el uso de caracteres comodín. El parámetro Exclude solo es efectivo cuando el comando incluye el contenido de un elemento, como C:\Windows\*
, donde el carácter comodín especifica el contenido del directorio C:\Windows
.
Cuando se usa Recurse con Exclude, solo Exclude filtra los resultados del directorio actual. Si hay archivos que coinciden con el patrón Exclude en las subcarpetas, esos archivos se eliminan junto con su carpeta padre.
Tipo: | String[] |
Posición: | Named |
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 de FileSystem es el único proveedor de PowerShell instalado que admite el uso de filtros. Puede encontrar la sintaxis del lenguaje de filtro de FileSystem en about_Wildcards. 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.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | True |
-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 alias o variables constantes. La implementación varía de proveedor a 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.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Include
Especifica, como matriz de cadenas, un elemento o elementos que este cmdlet incluye en la operación. El valor de este parámetro determina el carácter del parámetro Path. Escriba un elemento de ruta o patrón, como "*.txt"
. Se permite el uso de caracteres comodín. El parámetro Include solo es efectivo cuando el comando incluye el contenido de un elemento, como C:\Windows\*
, donde el carácter comodín especifica el contenido del directorio C:\Windows
.
Tipo: | String[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | True |
-LiteralPath
Especifica una ruta de acceso a una o varias ubicaciones. El valor de LiteralPath se usa exactamente tal como está escrito. Ninguno de los caracteres se interpreta como caracteres comodín. Si la ruta de acceso incluye caracteres de escape, escríbala entre comillas simples. Las comillas simples indican a PowerShell que no interprete ningún carácter como secuencias de escape.
Para obtener más información, consulte about_Quoting_Rules.
Tipo: | String[] |
Alias: | PSPath, LP |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-Path
Especifica una ruta de acceso de los elementos que se quitan. Se permite el uso de 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 dichas ubicaciones.
Es posible que el parámetro Recurse no elimine todas las subcarpetas ni todos los elementos secundarios. Se trata de un problema conocido.
Nota
Este comportamiento se corrigió en las versiones 1909 y posteriores de Windows.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Stream
Se trata de un parámetro dinámico que ofrece el proveedor de sistema de archivos . Este parámetro solo está disponible en Windows. Este parámetro no se puede usar en combinación con el parámetro Recurse.
Puede usar Remove-Item
para eliminar un flujo de datos alternativo, como Zone.Identifier
.
Sin embargo, no es la manera recomendada de eliminar las comprobaciones de seguridad que bloquean los archivos que se descargan de Internet. Si comprueba que un archivo descargado es seguro, use el cmdlet Unblock-File
.
Este parámetro se introdujo en Windows PowerShell 3.0. A partir de Windows PowerShell 7.2, Remove-Item
puede quitar flujos de datos alternativos de directorios, así como archivos.
Para obtener más información, vea about_FileSystem_Provider.
Tipo: | String[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | True |
-WhatIf
Muestra lo que sucedería si el cmdlet se ejecuta. El cmdlet no se ejecuta.
Tipo: | SwitchParameter |
Alias: | wi |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
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 devuelve ninguna salida.
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 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.
Al intentar eliminar una carpeta que contiene elementos sin usar el parámetro Recurse, el cmdlet solicita confirmación. El uso de -Confirm:$false
no suprime el mensaje. Esto es por diseño.