將相機檔案名稱批次變更為詳細檔案名,一次一個資料夾

將相機檔案名稱批次變更為詳細檔案名,一次一個資料夾

這是一個有關在 Windows Home 64 位元桌上型電腦上執行 Window PowerShell 的問題。

我正在將大約一百個資料夾的照片檔案名稱從相機和掃描器等更改005_2.JPG為詳細的檔案名,如Some Kid Riding a Bicycle.

我正在使用 Windows PowerShell 命令:

Dir | %{Rename-Item $_ -NewName ("Some Kid Riding a Bicycle-{0}.jpg" -f $nr++)}

這運行良好。

但是,當我只是CD\ 到下一個資料夾並用新字串替換新資料夾中的新主題時,附加到檔案名稱的“索引”編號不會重置回“1”,而是會向前遞增到更高的值number——甚至不是上一個操作中索引後面的下一個數字(在本例中為 111)。

如果最後一個操作中的最後一個索引是“111”,如下例所示:

-a----      2/4/2020   8:02 PM         404601 Some Kid Riding a Bicycle-111.jpg

然後我 cd\ 到包含 8 個檔案的資料夾:

Mode                LastWriteTime         Length Name
-a----        1/16/2020  11:39 PM         598118 018_15.JPG

[6 lines omitted here]                                                          

-a----        1/16/2020  11:39 PM         727598 DSC017.jpg

並運行:

> Dir | %{Rename-Item $_ -NewName ("Some Old Guy Riding a Bicycle-{0}.jpg" -f $nr++)}

在該資料夾中,輸出序列中的下一個檔案名稱是:

-a----   1/16/2020  11:39 PM     598118 Some Old Guy Riding a Bicycle-120.jpg

看起來索引向前跳躍了新目標資料夾中的檔案數量。我想知道是否涉及最後幾個字元-f $nr++),但我在我貧乏的庫中沒有找到任何對這樣的字串的引用。

如何解決此問題,使其以 -1(或其他預設值)重新開始?

答案1

$nr 是您的變量,您可以使用每個命令不斷迭代它的值。它的範圍是您的 PWSH 會話。只要您的會話打開,$nr 值就會不斷增加,除非您透過發出指令「$nr = 1」來指派新值。

相關內容