我需要手动格式化一些文件的日期值。
我刚刚从一个应用程序中提取了 6000 张照片/视频,它们都按照这种结构命名,每张照片都有不同的日期和时间:2016-12-09_10.13.39.JPG
。
尽管如此,文件显示错误创建日期和修改日期值,显示今天的日期而不是创建和修改的日期。
我想知道是否有办法将文件的名称提取为 Windows 日期格式 [澳大利亚],如下所示:12/09/2016 1:39 PM
,然后将值格式化为创建日期和修改日期字段?
答案1
您可以使用以下 PowerShell 脚本
$culture = [cultureinfo]::GetCultureInfo('en-AU')
foreach ($f in ls *.jpg) {
$d = [datetime]::ParseExact($f.BaseName, "yyyy-MM-dd_HH.mm.ss", $culture)
$f.CreationTime = $d
$f.LastWriteTime = $d
}
它将循环遍历当前文件夹中的所有文件,解析文件名中的日期,然后将创建和修改时间设置为该时间。在这种情况下实际上是不必要的,您可以将的$culture
最后一个参数更改为[datetime]::ParseExact
$null
如果您也想对子文件夹中的所有文件执行此操作,则将foreach
标题更改为ls -R *.jpg