Rename-Item
Rinomina un elemento in uno spazio dei nomi del provider PowerShell.
Sintassi
Rename-Item
[-Path] <String>
[-NewName] <String>
[-Force]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Rename-Item
-LiteralPath <String>
[-NewName] <String>
[-Force]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Descrizione
Il Rename-Item
cmdlet modifica il nome di un elemento specificato. Non influisce invece sul contenuto dell'elemento da rinominare.
Non è possibile usare Rename-Item
per spostare un elemento, ad esempio specificando un percorso insieme al nuovo nome. Per spostare e rinominare un elemento, usare il Move-Item
cmdlet .
Esempio
Esempio 1: Rinominare un file
Questo comando rinomina il file daily_file.txt
in monday_file.txt
.
Rename-Item -Path "c:\logfiles\daily_file.txt" -NewName "monday_file.txt"
Esempio 2: Rinominare e spostare un elemento
Non è possibile usare Rename-Item
per rinominare e spostare un elemento. In particolare, non è possibile specificare un percorso per il valore del parametro NewName , a meno che il percorso non sia identico al percorso specificato nel parametro Path . In caso contrario, è consentito solo un nuovo nome.
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"
In questo esempio si tenta di rinominare il project.txt
file nella directory old-project.txt
corrente in nella D:\Archive
directory . Il risultato è l'errore illustrato nell'output.
Usare invece il Move-Item
cmdlet .
Esempio 3: Rinominare una chiave del Registro di sistema
In questo esempio viene rinominata una chiave del Registro di sistema da Advertising a Marketing. Quando il comando viene completato, la chiave viene rinominata, ma le voci del Registro di sistema al suo interno rimangono invariate.
Rename-Item -Path "HKLM:\Software\MyCompany\Advertising" -NewName "Marketing"
Esempio 4: Rinominare più file
In questo esempio vengono rinominati tutti i *.txt
file nella directory corrente in *.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
Il Get-ChildItem
cmdlet ottiene tutti i file nella cartella corrente che hanno un'estensione .txt
di file, quindi li invia tramite pipe a Rename-Item
. Il valore di NewName è un blocco di script eseguito prima che il valore venga inviato al parametro NewName.
Nel blocco di script, la $_
variabile automatica rappresenta ogni oggetto file durante il comando tramite la pipeline. Il blocco di script usa l'operatore -replace
per sostituire l'estensione di file di ogni file con .log
. Si noti che la corrispondenza con l'operatore -replace
non fa distinzione tra maiuscole e minuscole.
Parametri
-Confirm
Richiede conferma prima di eseguire il cmdlet.
Tipo: | SwitchParameter |
Alias: | cf |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Credential
Nota
Questo parametro non è supportato da alcun provider installato con PowerShell. Per rappresentare un altro utente o elevare le credenziali durante l'esecuzione di questo cmdlet, usare Invoke-Command.
Tipo: | PSCredential |
Posizione: | Named |
Valore predefinito: | Current user |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Force
Forza il cmdlet a rinominare gli elementi che non possono altrimenti essere modificati, ad esempio file nascosti o di sola lettura o alias o variabili di sola lettura. Il cmdlet non può modificare gli alias o le variabili costanti. L'implementazione varia a seconda del provider. Per altre informazioni, vedere about_Providers.
Anche usando il parametro Force , il cmdlet non può eseguire l'override delle restrizioni di sicurezza.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-LiteralPath
Specifica un percorso di una o più posizioni. Il valore di LiteralPath viene usato esattamente come viene tipizzato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, racchiuderlo tra virgolette singole. Le virgolette singole indicano a PowerShell di non interpretare alcun carattere come sequenze di escape.
Per altre informazioni, vedere about_Quoting_Rules.
Tipo: | String |
Alias: | PSPath, LP |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-NewName
Specifica il nuovo nome dell'elemento. Immettere solo un nome, non un percorso e un nome. Se si immette un percorso diverso dal percorso specificato nel parametro Path , Rename-Item
genera un errore.
Per rinominare e spostare un elemento, usare Move-Item
.
Non è possibile usare caratteri jolly nel valore del parametro NewName . Per specificare un nome per più file, usare l'operatore Replace in un'espressione regolare. Per altre informazioni sull'operatore Replace, vedere about_Comparison_Operators.
Tipo: | String |
Posizione: | 1 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-PassThru
Restituisce un oggetto che rappresenta l'elemento nella pipeline. Per impostazione predefinita, il cmdlet non genera alcun output.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Path
Specifica il percorso dell'elemento da rinominare.
Tipo: | String |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-WhatIf
Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.
Tipo: | SwitchParameter |
Alias: | wi |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
È possibile inviare tramite pipe una stringa contenente un percorso a questo cmdlet.
Output
None
Per impostazione predefinita, questo cmdlet non restituisce alcun output.
Quando si utilizza il parametro PassThru , questo cmdlet restituisce un oggetto che rappresenta l'elemento rinominato.
Note
PowerShell include gli alias seguenti per Rename-Item
:
- Tutte le piattaforme:
ren
rni
Rename-Item
è progettato per lavorare con i dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare Get-PsProvider
. Per altre informazioni, vedere about_Providers.