Condividi tramite


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 cmdlet Rename-Item modifica il nome di un elemento specificato. Questo cmdlet non influisce 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 cmdlet Move-Item.

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"

Questo esempio tenta di rinominare il file di project.txt nella directory corrente in old-project.txt nella directory D:\Archive. Il risultato è l'errore visualizzato nell'output.

Usare invece il cmdlet Move-Item.

Esempio 3: Rinominare una chiave del Registro di sistema

In questo esempio viene rinominata una chiave del Registro di sistema da Advertising a Marketing. Al termine del comando, la chiave viene rinominata, ma le voci di registro nella chiave non vengono modificate.

Rename-Item -Path "HKLM:\Software\MyCompany\Advertising" -NewName "Marketing"

Esempio 4: Rinominare più file

In questo esempio vengono rinominati tutti i file di *.txt 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 cmdlet Get-ChildItem ottiene tutti i file nella cartella corrente con estensione di file .txt quindi li invia tramite pipe a Rename-Item. Il valore di NewName è un blocco di script eseguito prima dell'invio del valore al parametro newName.

Nel blocco di script, la variabile automatica $_ rappresenta ogni oggetto di file man mano che arriva al comando attraverso la pipeline. Il blocco di script usa l'operatore -replace per sostituire l'estensione di ciascun 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 quando si esegue 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 da provider a provider. Per altre informazioni, consultare 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 per una o più posizioni. Il valore di LiteralPath viene usato esattamente come viene tipizzato. Nessun carattere viene interpretato come caratteri 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 informazioni sugli operatori di confronto.

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, questo 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 cosa accadrebbe se il cmdlet viene eseguito. 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

String

È possibile inviare tramite pipe una stringa contenente un percorso a questo cmdlet.

Output

None

Per impostazione predefinita, questo cmdlet non restituisce alcun output.

PSObject

Quando si usa 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, consultare about_Providers.