
我有 14,000 張照片,按年份和月份分類整理成文件,但都是用多台相機拍攝的。我希望檔案名稱能反映照片的拍攝日期。
例如,1998 年 10 月 16 日拍攝的所有照片都位於名為 的資料夾中1998\10 October\19981016
。
我希望所有圖片都命名為 19981016_0001 19981016_0002 等。
我可以到達它列出我想要更改的資料夾的程度,但我無法實際更改它。我所有的圖片都是 .jpg。
我創建了一個臨時文件副本,以防我搞砸了。我先輸入:
cd "C:\Documents and Settings\Brooke LastName\Desktop\Temp"
然後在成功加載我的文件後,我使用了我在這個論壇上找到的公式。
ls *jpg | Foreach {$i=1} {Rename-Item _ -NewName ("$($.19981016){0:00000000#} .jpg" -f $i++) -whatif}
我得到的錯誤是這樣說的
Unexpected token ' .19981016' in expression or statement.
At line:1 char:12 + $.19981016 <<<<
錯誤重複了好幾次
我在網上找到了幾個公式,但大多數創建的文件都用括號進行編號,例如假期 (1).jpg 我想要在日期末尾的下劃線後有一個四位數的計數器。即19981016_0001
答案1
我認為你修改了公式,並且至少犯了兩個錯誤:
Rename-Item $_
-> 否則 PowerShell 將嘗試重命名名為「_」的文件"$($_.Directory.Name)_{0:D9}.jpg" -f $i++
- 您需要取得目前物件的目錄名稱,並進行格式化 - 使用 D# 格式更容易,更容易計算最終獲得的位數...