Ich denke, Sie den Befehl wie folgt ausgeführt geschehen lassen:
Get-ChildItem "C:\temp\test\testsub" -Recurse -Include *.wav |
%{Rename-Item $_ -NewName ("$_.Directory.Name.Substring(4)"+"($_.Name).wav")}
Es produziert:
Rename-Item : Cannot rename the specified target, because it represents a path or device name.
At line:1 char:66
+ ... e *.wav | %{Rename-Item $_ -NewName ("$_.Directory.Name.Substring(4)" ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Rename-Item], PSArgumentException
+ FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.RenameItemCommand
Das liegt daran, dass ("$.Directory.Name.Substring(4)"+"($.Name).wav")
enthält Pfad. Sie können es sehen, indem Sie den folgenden Befehl ausführen:
Get-ChildItem "C:\temp\test\testsub" -Recurse -Include *.wav |
% { "$_.Directory.Name.Substring(4)"+"($_.Name).wav" }
Es produziert, wie folgend:
C:\temp\test\testsub\a1.wav.Directory.Name.Substring(4)(C:\temp\test\testsub\a1.wav.Name).wav
C:\temp\test\testsub\a2.wav.Directory.Name.Substring(4)(C:\temp\test\testsub\a2.wav.Name).wav
C:\temp\test\testsub\a3.wav.Directory.Name.Substring(4)(C:\temp\test\testsub\a3.wav.Name).wav
Nach dem Rename-Item help, um ein Element zu verschieben und umbenennen, verwenden Sie das Move-Item
Cmdlets.
Worauf möchten Sie es umbenennen? –
Bitte geben Sie weitere Informationen an, z. B. die ursprünglichen Dateinamen und die Umbenennungen. – Adam