Powershell - 修改文件的日期和时间以反映其文件名

use*_*201 2 powershell timestamp file

我不得不从存储卡中恢复一大堆文件到我的硬盘.我的硬盘上恢复文件的名称格式为"yyyymmdd_hhmmss.mp4",并显示正确的时间和日期.

但是,这些恢复文件的日期修改列显示了完全不同的日期(格式为"dd/mm/yyyy hh:mm"(显然是在查看其属性时显示的秒数),因为我居住在英国),我会像这些日期修改的邮票再次反映他们的文件名.我已经开始编写PowerShell脚本来提取变量的日期和时间,这是我到目前为止所做的:

foreach ($file in Get-ChildItem *.mp4)
{
    $yy = $file.Name.substring(0,4)
    $mm = $file.Name.substring(4,2)
    $dd = $file.Name.substring(6,2)
    $hh = $file.Name.substring(9,2)
    $min = $file.Name.substring(11,2)
    $ss = $file.Name.substring(13,2)
}
Run Code Online (Sandbox Code Playgroud)

但是,我使用PS的经验不能写日期修改属性来反映文件名.请有人帮帮我吗?

亲切的问候,

罗伯休斯.

Mat*_*sen 5

要设置"修改日期"属性,请更新$file.LastWriteTime属性.您可以使用[datetime]::ParseExact()在单个操作中从文件名解析日期和时间.

foreach($file in Get-ChildItem -Filter *.mp4)
{
    $file.LastWriteTime = [datetime]::ParseExact($file.BaseName, 'yyyyMMdd_HHmmss', $null)
}
Run Code Online (Sandbox Code Playgroud)