如何使用计数器批量重命名文件?

如何使用计数器批量重命名文件?

我有 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 <<<<

错误重复多次

我在网上找到了几个公式,但大多数创建的文件都会用括号编号,例如 vacation (1).jpg 我想要一个在日期末尾下划线后面的四位数计数器。即 19981016_0001

答案1

我认为你修改了公式,并且至少犯了两个错误:

  • Rename-Item $_-> 否则 PowerShell 将尝试重命名名为“_”的文件
  • "$($_.Directory.Name)_{0:D9}.jpg" -f $i++- 您需要获取当前对象的目录名称,并进行格式化 - 使用 D# 格式更容易,更容易计算最终得到的数字数...

相关内容