(我只是想在這裡發布每條路徑。這感覺很尷尬,但它可能會造成什麼傷害,對吧?)
這是我的 PowerShell 命令提示字元:
PS D:\Local generations\Tlungvel> ls | Rename-Item -NewName {"TlungvelSolar " + $_.Name}
Rename-Item : Could not find a part of the path.
At line:1 char:6
+ ls | Rename-Item -NewName {"TlungvelSolar " + $_.Name}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (D:\Local genera..._02.07.2021.xls:String) [Rename-Item], DirectoryNotFoundException
+ FullyQualifiedErrorId : RenameItemIOError,Microsoft.PowerShell.Commands.RenameItemCommand
Rename-Item : Could not find a part of the path.
At line:1 char:6
+ ls | Rename-Item -NewName {"TlungvelSolar " + $_.Name}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (D:\Local genera..._23.07.2021.xls:String) [Rename-Item], DirectoryNotFoundException
+ FullyQualifiedErrorId : RenameItemIOError,Microsoft.PowerShell.Commands.RenameItemCommand
....等等,它適用於目錄中的每個檔案。
即使對於像我這樣的初學者高級用戶來說,該命令看起來也足夠簡單(“ls | Rename-Item -NewName {“TlungvelSolar”+ $_.Name}”),如果目錄中的檔案數量很少,它就可以正常工作。但是,如果文件數量達到某個閾值,該過程就會無限期地重複,並為每個文件陷入上述錯誤。
例如,檔案名稱之一是“Power_Drawal_from_23.07.2021___24.07.2021”
如果檔案計數超過 22(對於此檔案名稱),則會將其重新命名為「TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelR20D707070707070700707007070070707030077。受 Windows 最大 256 限制)字元文件路徑限制)。
現在我希望將其重新命名為“TlungvelSolar Power_Drawal_from_23.07.2021___24.07.2021”
同樣,如果文件數量較少,它就可以正常工作,而且它似乎也取決於文件名。
答案1
你的問題是由將物品送入管道所引起的更改來源時。[咧嘴笑] 這使得重新處理相同的項目變得非常容易 - 它看起來像程式碼中的不同項目。
修復類似於以下解決方案之一...
- 將所有項目放入 $Var 中並提供給它完整收藏進入管道
- 將呼叫括
G-CI
在括號中以強制呼叫取得所有內容一度 - 使用
foreach
循環
我更喜歡其中的第三個,因為它使一組步驟更簡單、更明顯……因此更容易調試。 [咧嘴笑]