我有 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# 格式更容易,更容易计算最终得到的数字数...