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 cmdlet Rename-Item ändert den Namen eines angegebenen Elements. Dieses Cmdlet wirkt sich nicht auf den Inhalt des umbenannten Elements aus.

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

Beispiele

Beispiel 1: Umbenennen einer Datei

Mit diesem Befehl wird die Datei daily_file.txt in monday_file.txtumbenannt.

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

Beispiel 2: Umbenennen und Verschieben eines Elements

Sie können Rename-Item nicht verwenden, 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 identisch mit dem pfad, der im parameter Path angegeben ist. Andernfalls ist nur ein neuer Name zulässig.

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 diesem Beispiel wird versucht, die project.txt Datei im aktuellen Verzeichnis in old-project.txt im verzeichnis D:\Archive umzubenennen. Das Ergebnis ist der Fehler, der in der Ausgabe angezeigt wird.

Verwenden Sie stattdessen das Cmdlet Move-Item.

Beispiel 3: Umbenennen eines Registrierungsschlüssels

In diesem Beispiel wird ein Registrierungsschlüssel von Advertising- in Marketing-umbenannt. Wenn der Befehl abgeschlossen ist, wird der Schlüssel umbenannt, aber die Registrierungseinträge im Schlüssel bleiben 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 Cmdlet Get-ChildItem ruft alle Dateien im aktuellen Ordner ab, die über eine .txt Dateierweiterung verfügen, und übergibt sie dann an Rename-Item. Der Wert 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 im Hinblick auf den Befehl über die Pipeline dar. Der Skriptblock verwendet den -replace-Operator, um die Dateierweiterung jeder Datei durch .logzu ersetzen. Beachten Sie, dass beim Abgleich mit dem Operator -replace die Groß-/Kleinschreibung nicht beachtet wird.

Parameter

-Confirm

Fordert Sie vor dem Ausführen des Cmdlets zur Bestätigung auf.

Typ:SwitchParameter
Aliase:cf
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Credential

Anmerkung

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 imitieren oder Ihre Anmeldeinformationen beim Ausführen dieses Cmdlets zu erhöhen.

Typ:PSCredential
Position:Named
Standardwert:Current user
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren: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 Konstantenalias oder Variablen ändern. Die Implementierung variiert von Anbieter zu Anbieter. Weitere Informationen finden Sie unter über_Anbieter.

Selbst bei Verwendung des parameters Force kann das Cmdlet keine Sicherheitseinschränkungen außer Kraft setzen.

Typ:SwitchParameter
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-LiteralPath

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

Weitere Informationen finden Sie unter über_Zitierregeln.

Typ:String
Aliase:PSPath, LP
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-NewName

Gibt den neuen Namen des Elements an. Geben Sie nur einen Namen und keinen Pfad und Namen ein. Wenn Sie einen Pfad eingeben, der sich vom Pfad unterscheidet, der im parameter Path angegeben ist, generiert Rename-Item einen Fehler. Verwenden Sie Move-Item, um ein Element umzubenennen und zu verschieben.

Sie können keine Wildcardzeichen im Wert des NewName-Parameters verwenden. Verwenden Sie zum Angeben eines Namens für mehrere Dateien den Operator Replace in einem regulären Ausdruck. Weitere Informationen zum Replace-Operator finden Sie unter about_Comparison_Operators.

Typ:String
Position:1
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-PassThru

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

Typ:SwitchParameter
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Path

Gibt den Pfad des umzubenennende Elements an.

Typ:String
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-WhatIf

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

Typ:SwitchParameter
Aliase:wi
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

String

Sie können eine Zeichenfolge weiterleiten, die einen Pfad zu diesem Cmdlet enthält.

Ausgaben

None

Standardmäßig gibt dieses Cmdlet keine Ausgabe zurück.

PSObject

Wenn Sie den PassThru Parameter verwenden, gibt dieses Cmdlet ein Objekt zurück, das das umbenannte Element darstellt.

Hinweise

PowerShell enthält die folgenden Aliase für Rename-Item:

  • Alle Plattformen:
    • ren
    • rni

Rename-Item ist für die Arbeit mit den Daten konzipiert, die von jedem Anbieter verfügbar gemacht werden. Geben Sie Get-PsProviderein, um die in Ihrer Sitzung verfügbaren Anbieter auflisten zu können. Weitere Informationen finden Sie unter über_Anbieter.