Rename-Item
Cambia el nombre de un elemento en un espacio de nombres del proveedor de PowerShell.
Syntax
Rename-Item
[-Path] <String>
[-NewName] <String>
[-Force]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Rename-Item
-LiteralPath <String>
[-NewName] <String>
[-Force]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Description
El Rename-Item
cmdlet cambia el nombre de un elemento especificado. Este cmdlet no afecta al contenido del elemento cuyo nombre se va a cambiar.
No se puede usar Rename-Item
para mover un elemento, por ejemplo, especificando una ruta de acceso junto con el nuevo nombre. Para mover y cambiar el nombre de un elemento, use el Move-Item
cmdlet .
Ejemplos
Ejemplo 1: Cambiar el nombre de un archivo
Este comando cambia el nombre del archivo daily_file.txt
a monday_file.txt
.
Rename-Item -Path "c:\logfiles\daily_file.txt" -NewName "monday_file.txt"
Ejemplo 2: Cambiar el nombre y mover un elemento
No se puede usar Rename-Item
para cambiar el nombre y mover un elemento. En concreto, no se puede proporcionar una ruta de acceso para el valor del parámetro NewName , a menos que la ruta de acceso sea idéntica a la ruta de acceso especificada en el parámetro Path . De lo contrario, sólo se permite un nombre nuevo.
En este ejemplo se intenta cambiar el nombre del project.txt
archivo del directorio actual a old-project.txt
en el D:\Archive
directorio . El resultado es el error que se obtiene.
Rename-Item -Path "project.txt" -NewName "d:\archive\old-project.txt"
Rename-Item : can't rename because the target specified represents a path or device name.
At line:1 char:12
+ Rename-Item <<<< -path project.txt -NewName d:\archive\old-project.txt
+ CategoryInfo : InvalidArgument: (:) [Rename-Item], PS> Move-Item -Path "project.txt" -De
stination "d:\archive\old-project.txt"
Ejemplo 3: Cambiar el nombre de una clave del Registro
En este ejemplo se cambia el nombre de una clave del Registro de Publicidad a Marketing. Cuando finalice el comando, se cambia el nombre de la clave, pero las entradas del Registro de la clave no cambian.
Rename-Item -Path "HKLM:\Software\MyCompany\Advertising" -NewName "Marketing"
Ejemplo 4: Cambiar el nombre de varios archivos
En este ejemplo se cambia el nombre de todos los *.txt
archivos del directorio actual a *.log
.
Get-ChildItem *.txt
Directory: C:\temp\files
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 10/3/2019 7:47 AM 2918 Friday.TXT
-a---- 10/3/2019 7:46 AM 2918 Monday.Txt
-a---- 10/3/2019 7:47 AM 2918 Wednesday.txt
Get-ChildItem *.txt | Rename-Item -NewName { $_.Name -replace '.txt','.log' }
Get-ChildItem *.log
Directory: C:\temp\files
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 10/3/2019 7:47 AM 2918 Friday.log
-a---- 10/3/2019 7:46 AM 2918 Monday.log
-a---- 10/3/2019 7:47 AM 2918 Wednesday.log
El Get-ChildItem
cmdlet obtiene todos los archivos de la carpeta actual que tienen una .txt
extensión de archivo y, a continuación, los canaliza a Rename-Item
. El valor de NewName es un bloque de script que se ejecuta antes de enviar el valor al parámetro NewName .
En el bloque de script, la $_
variable automática representa cada objeto de archivo a medida que se trata del comando a través de la canalización. El bloque de script usa el -replace
operador para reemplazar la extensión de archivo de cada archivo por .log
. Tenga en cuenta que la coincidencia con el -replace
operador no distingue mayúsculas de minúsculas.
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 |
-Force
Obliga al cmdlet a cambiar el nombre de los 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 cambiar los alias o variables 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 |
-LiteralPath
Especifica una ruta de acceso a una o varias ubicaciones. 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 caracteres como secuencias de escape.
Para obtener más información, consulte about_Quoting_Rules.
Type: | String |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NewName
Especifica el nuevo nombre del elemento. Escriba sólo un nombre, no una ruta de acceso y un nombre. Si escribe una ruta de acceso que difiere de la ruta de acceso especificada en el parámetro Path , Rename-Item
genera un error.
Para cambiar el nombre y mover un elemento, use Move-Item
.
No se pueden usar caracteres comodín en el valor del parámetro NewName . Para especificar un nombre para varios archivos, use el operador Replace en una expresión regular. Para obtener más información sobre el operador Replace, vea about_Comparison_Operators.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PassThru
Devuelve un objeto que representa el elemento de la canalización. De forma predeterminada, este cmdlet no genera ningún resultado.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Especifica la ruta de acceso del elemento cuyo nombre se va a cambiar.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
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 obtener 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
Puede canalizar una cadena que contiene una ruta de acceso a este cmdlet.
Salidas
None or an object that represents the renamed item.
Este cmdlet genera un objeto que representa el elemento cuyo nombre ha cambiado, si especifica el parámetro PassThru . De lo contrario, este cmdlet no genera resultados.
Notas
Rename-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.