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 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

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 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.