2016-05-11 11 views
0

Get-ChildItem "C: \ temp \ test \ testsub" -Recurse -Include * .wav | % {Rename-Item $ _ -newname ("$ .Directory.Name.Substring (4)" + "($ .Name) .wav")}kann nicht umbenannt werden, da das angegebene Ziel einen Pfad oder Gerätenamen darstellt

erzeugt Fehler Ich verstehe nicht

[FEHLER] Kann nicht umbenannt werden, da das angegebene Ziel einen Pfad- oder Gerätenamen darstellt.

+0

Worauf möchten Sie es umbenennen? –

+0

Bitte geben Sie weitere Informationen an, z. B. die ursprünglichen Dateinamen und die Umbenennungen. – Adam

Antwort

0

wie andere erwähnt, kann man nur erraten, was Sie erreichen wollen, also hier ist meine Vermutung.

entfernen -whatif die Änderungen

Get-ChildItem 'C:\temp\test\testsub' -Recurse -Include *.wav | % {rename-item $_.fullname $($_.directory.name.substring(0, 4) + '-' + $_.name) -whatif} 
+0

Das war die Antwort, obwohl ich noch nicht verstehe warum. Der Versuch bestand darin, die ersten vier Zeichen des Verzeichnisnamens zu verwenden, um darin enthaltene Dateien umzubenennen. Danke an Herrn Stringer. – sconard

0

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.

Verwandte Themen