Freigeben über


Rename-Item

Benennt ein Element in einem PowerShell-Anbieternamespace um.

Syntax

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

Beschreibung

Das Rename-Item Cmdlet ändert den Namen eines angegebenen Elements. Dieses Cmdlet hat keine Auswirkungen auf den Inhalt des umbenannten Elements.

Sie können nicht verwenden Rename-Item , um ein Element zu verschieben, z. B. indem Sie einen Pfad zusammen mit dem neuen Namen angeben. Verwenden Sie das Cmdlet, um ein Element zu verschieben und umzubenennen Move-Item .

Beispiele

Beispiel 1: Umbenennen einer Datei

Dieser Befehl benennt die Datei daily_file.txt in um monday_file.txt.

Rename-Item -Path "c:\logfiles\daily_file.txt" -NewName "monday_file.txt"

Beispiel 2: Umbenennen und Verschieben eines Elements

Sie können nicht verwenden Rename-Item , um ein Element umzubenennen und zu verschieben. Insbesondere können Sie keinen Pfad für den Wert des NewName-Parameters angeben, es sei denn, der Pfad ist mit dem im Path-Parameter angegebenen Pfad identisch. Andernfalls ist nur ein neuer Name zulässig.

In diesem Beispiel wird versucht, die project.txt Datei im aktuellen Verzeichnis in im D:\Archive Verzeichnis umzubenennenold-project.txt. Das Ergebnis ist der in der Ausgabe angezeigte Fehler.

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"

Beispiel 3: Umbenennen eines Registrierungsschlüssels

In diesem Beispiel wird ein Registrierungsschlüssel von "Werbung" in "Marketing" umbenannt. Nach Abschluss des Befehls wurde der Schlüssel umbenannt, die Registrierungseinträge im Schlüssel sind jedoch unverändert.

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

Beispiel 4: Umbenennen mehrerer Dateien

In diesem Beispiel werden alle *.txt Dateien im aktuellen Verzeichnis in *.logumbenannt.

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

Das Get-ChildItem Cmdlet ruft alle Dateien im aktuellen Ordner ab, die über eine .txt Dateierweiterung verfügen, und leitet sie dann an weiter Rename-Item. Der Wert von NewName ist ein Skriptblock, der ausgeführt wird, bevor der Wert an den NewName-Parameter übermittelt wird.

Im Skriptblock stellt die $_ automatische Variable jedes Dateiobjekt dar, wie es über die Pipeline zum Befehl kommt. Der Skriptblock verwendet den -replace -Operator, um die Dateierweiterung jeder Datei durch .logzu ersetzen. Beachten Sie, dass beim Abgleich mit dem -replace Operator die Groß-/Kleinschreibung nicht beachtet wird.

Parameter

-Confirm

Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Hinweis

Dieser Parameter wird von anbietern, die mit PowerShell installiert sind, nicht unterstützt. Verwenden Sie Invoke-Command, um die Identität eines anderen Benutzers zu annehmen oder Ihre Anmeldeinformationen beim Ausführen dieses Cmdlets zu erhöhen.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Force

Erzwingt das Cmdlet, Elemente umzubenennen, die andernfalls nicht geändert werden können, z. B. ausgeblendete oder schreibgeschützte Dateien oder schreibgeschützte Aliase oder Variablen. Das Cmdlet kann keine konstanten Aliase oder Variablen ändern. Die Implementierung unterscheidet sich bei den einzelnen Anbietern. Weitere Informationen finden Sie unter about_Providers.

Selbst mit dem Force-Parameter kann das Cmdlet keine Sicherheitseinschränkungen außer Kraft setzen.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LiteralPath

Gibt einen Pfad zu einem oder mehreren Speicherorten an. Der Wert von LiteralPath wird genau so verwendet, wie er eingegeben wird. Es werden keine Zeichen als Platzhalter interpretiert. Wenn der Pfad Escapezeichen enthält, müssen Sie ihn in einfache Anführungszeichen einschließen. Einfache Anführungszeichen weisen PowerShell an, keine Zeichen als Escapesequenzen zu interpretieren.

Weitere Informationen finden Sie unter about_Quoting_Rules.

Type:String
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NewName

Gibt den neuen Namen des Elements an. Geben Sie nur einen Namen ein, nicht einen Pfad und einen Namen. Wenn Sie einen Pfad eingeben, der sich von dem im Path-Parameter angegebenen Pfad unterscheidet, Rename-Item wird ein Fehler generiert. Verwenden Sie Move-Item, um ein Element umzubenennen und zu verschieben.

Sie können keine Wildcardzeichen im Wert des NewName-Parameters verwenden. Um einen Namen für mehrere Dateien anzugeben, verwenden Sie den Replace-Operator in einem regulären Ausdruck. Weitere Informationen zum Replace-Operator finden Sie unter about_Comparison_Operators.

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-PassThru

Gibt ein -Objekt zurück, das das Element für die Pipeline darstellt. Standardmäßig wird von diesem Cmdlet keine Ausgabe generiert.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Gibt den Pfad des umzubenennenden Elements an.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

String

Sie können eine Zeichenfolge, die einen Pfad enthält, an dieses Cmdlet übergeben.

Ausgaben

None or an object that represents the renamed item.

Dieses Cmdlet generiert ein -Objekt, das das umbenannte Element darstellt, wenn Sie den PassThru-Parameter angeben. Andernfalls wird von diesem Cmdlet keine Ausgabe generiert.

Hinweise

Rename-Item ist für die Arbeit mit den Daten konzipiert, die von jedem Anbieter verfügbar gemacht werden. Um die in Ihrer Sitzung verfügbaren Anbieter aufzulisten, geben Sie ein Get-PsProvider. Weitere Informationen finden Sie unter about_Providers.