【发布时间】:2018-12-09 21:11:42
【问题描述】:
我有一堆 .jpg 文件保存在不同的文件夹中,文件名上有错误的时间戳(延迟 1 小时),我想根据创建时间更正它。这样做的目的是获得一张 CSV 表,其中包含所有已更正的文件名及其完整路径。
我现在正在尝试编写一个 PowerShell 脚本,该脚本可以遍历所有文件夹,提取创建时间并将其替换为带有错误时间戳的文件名。下面是一个小例子:
带有错误时间戳的原始文件名:
文件名、创建日期、修改日期 20180524010500530_FR785101.jpg, 2018-05-24 00:05:00, 2018-05-24 00:05:34正确的输出是:
文件名、创建日期、修改日期 20180524000500530_FR785101.jpg, 2018-05-24 00:05:00, 2018-05-24 00:05:34我已经开始记录自己使用CreationTime 命令,但我仍然无法弄清楚如何提取创建时间并将其替换为文件名时间戳。另外,我不知道如何使脚本遍历包含图像文件的所有文件夹和子文件夹,最终将所有内容导出到 CSV 表中。
Get-ChildItem -Path "c:/path/to/files/" -Recurse -Include @("*.jpg") |
Rename-Item -NewName {
$_.Name -replace "IMG", ($_.CreationTime.ToString("yyyyMMdd"))
}
更新:
我想要得到的最终.csv 输出如下所示:
File path, date time, name
path_of_file, Timestamp, Name
C:_users_mind_volume, 20180524000500530, FR785101
【问题讨论】:
-
"IMG"->'^\d{8}'。将文件名中的前 8 位数字替换为创建日期。 -
@AnsgarWiechers 谢谢你的回答,但你能说得更具体点吗,我不太明白你的方法。
标签: powershell csv filenames