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 ein Element nicht Rename-Item
verschieben, z. B. indem Sie einen Pfad zusammen mit dem neuen Namen angeben. Verwenden Sie das Move-Item
Cmdlet, 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.txt
.
Rename-Item -Path "c:\logfiles\daily_file.txt" -NewName "monday_file.txt"
Beispiel 2: Umbenennen und Verschieben eines Elements
Sie können Rename-Item
kein Element umbenennen und 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 Pfadparameter 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 das D:\Archive
Verzeichnis old-project.txt
umzubenennen. Das Ergebnis ist der in der Ausgabe angezeigte Fehler.
Verwenden Sie stattdessen das Move-Item
Cmdlet.
Beispiel 3: Umbenennen eines Registrierungsschlüssels
In diesem Beispiel wird ein Registrierungsschlüssel von "Advertising " 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 *.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
Das Get-ChildItem
Cmdlet ruft alle Dateien im aktuellen Ordner ab, in denen eine .txt
Dateierweiterung enthalten ist, und übergibt sie dann an 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, da es über die Pipeline zum Befehl kommt. Der Skriptblock verwendet den -replace
Operator, um die Dateierweiterung jeder Datei durch .log
. Beachten Sie, dass die Übereinstimmung mit dem -replace
Operator bei der 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. Um einen anderen Benutzer zu imitieren oder Ihre Anmeldeinformationen beim Ausführen dieses Cmdlets zu erhöhen, verwenden Sie "Invoke-Command".
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 Konstantenalias oder Variablen ändern. Die Implementierung unterscheidet sich bei den einzelnen Anbietern. Weitere Informationen finden Sie unter about_Providers.
Selbst wenn der Parameter Force verwendet wird, 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 wie eingegeben verwendet. Es werden keine Zeichen als Platzhalter interpretiert. Wenn der Pfad Escapezeichen enthält, müssen Sie ihn in einfache Anführungszeichen einschließen. Einzelne 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 vom pfadspezifischen Pfad unterscheidet, der im Parameter "Path " angegeben ist, Rename-Item
wird ein Fehler generiert.
Um ein Element umzubenennen und zu verschieben, verwenden Sie Move-Item
.
Sie können keine Wildcardzeichen im Wert des NewName-Parameters verwenden. Verwenden Sie den Replace-Operator in einem regulären Ausdruck, um einen Namen für mehrere Dateien anzugeben. Weitere Informationen zum Operator "Ersetzen" 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 in der 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 zu umbenennenden 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
Sie können eine Zeichenfolge weiterleiten, die einen Pfad zu diesem Cmdlet enthält.
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 darauf ausgelegt, mit den daten zu arbeiten, die von jedem Anbieter verfügbar gemacht werden. Zum Auflisten der in Ihrer Sitzung verfügbaren Anbieter geben Sie Get-PsProvider
. Weitere Informationen finden Sie unter about_Providers.