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 -ForceUtiliza 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-ItemEn 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 -RecurseEjemplo 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.txtEjemplo 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
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
- 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
eraserdriWindows:
rmrmdirEl 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.