Get-ChildItem「C:\ temp \ test \ testsub」-Recurse -Include * .wav | %{重命名,項目$ _ -NewName( 「$ .Directory.Name.Substring(4)」 + 「($請將.Name).WAV」)}無法重命名,因爲指定的目標代表路徑或設備名稱
產生的錯誤,我不明白
[錯誤]無法重命名,因爲指定的目標代表路徑或設備名稱。
Get-ChildItem「C:\ temp \ test \ testsub」-Recurse -Include * .wav | %{重命名,項目$ _ -NewName( 「$ .Directory.Name.Substring(4)」 + 「($請將.Name).WAV」)}無法重命名,因爲指定的目標代表路徑或設備名稱
產生的錯誤,我不明白
[錯誤]無法重命名,因爲指定的目標代表路徑或設備名稱。
正如其他人所說,人們只能猜測你想要完成什麼,所以這裏是我的猜測。
刪除-whatif進行更改發生
Get-ChildItem 'C:\temp\test\testsub' -Recurse -Include *.wav | % {rename-item $_.fullname $($_.directory.name.substring(0, 4) + '-' + $_.name) -whatif}
這是答案,雖然我還不明白爲什麼。嘗試使用目錄名稱的前四個字符來重命名其中包含的文件。感謝斯金格先生。 – sconard
我猜你執行的命令如下:
Get-ChildItem "C:\temp\test\testsub" -Recurse -Include *.wav |
%{Rename-Item $_ -NewName ("$_.Directory.Name.Substring(4)"+"($_.Name).wav")}
它產生:
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
這是因爲("$.Directory.Name.Substring(4)"+"($.Name).wav")
包括路徑。您可以通過執行以下命令來查看它:
Get-ChildItem "C:\temp\test\testsub" -Recurse -Include *.wav |
% { "$_.Directory.Name.Substring(4)"+"($_.Name).wav" }
它產生如下:
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
按照Rename-Item help,移動和重命名項,請使用Move-Item
cmdlet的。
你想重命名爲什麼? –
請提供一些更多信息,例如原始文件名和您希望重命名爲的內容。 – Adam