$getdate = Get-Date -Format "yyyymmddHHmmss"
Get-ChildItem -Path C:\blah\*.tiff | foreach { rename-item -Path $_.FullName -NewName "($getdate).tif" }
這只是告訴我該檔案已經存在,就好像它試圖將它們全部更改為相同的日期和時間一樣。
這是每個檔案應該重命名為 if 但以.tifand not結尾的內容.tiff。
Get-ChildItem -Path C:\blah\* | Get-Date -Format "yyyymmddHHmmss"
20221413111408
20222013112039
20225413115422
20221816071813
我如何讓它作業,以便在我運行它時重命名進入他的檔案夾的每個檔案。
我也試過這個:
Get-ChildItem -Path C:\Blah\*.tiff | foreach { rename-item -Path $_.FullName -NewName "Get-Date -Format ("yyyymmddHHmmss").tif" }
這給了我這個錯誤:
Rename-Item : A positional parameter cannot be found that accepts argument 'yyyymmddHHmmss).tif'.
At line:1 char:52
... | foreach { rename-item -Path $_.FullName -NewName "Get-Date -Format ...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CategoryInfo : InvalidArgument: (:) [Rename-Item], ParameterBindingException
FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.RenameItemCommand
uj5u.com熱心網友回復:
它目前正在嘗試將所有文??件重命名為相同的日期時間戳,因為您要求它- 存盤在其中的值$getdate不會自動更新自身:)
相反,您需要在Get-Date每次重命名單個檔案時通過將腳本塊傳遞給-NewName引數來呼叫 - 然后 PowerShell 將重新評估要重命名的每個檔案的腳本塊:
Get-ChildItem -Path C:\blah*.tiff |Rename-Item -NewName { "$($_ |Get-Date -Format 'yyyymmddHHmmss').tif" }
正如Santiago 指出的那樣,如果您有多個影像檔案最后在同一掛鐘秒內寫入/修改,這仍然會因命名沖突而失敗。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/487518.html
