如何使用 .csv 数据修改多个文件的创建日期属性?

How to modify the date-created attribute for multiple files using .csv data?

我不确定如何表达我的问题,因为我不熟悉它, 但 Powershell 可能是我需要使用的。

我看到了这个:need to change file created date based on csv(4 年前)

并想知道如何将其应用到我的问题中。

文件夹 videos 中有许多 .mp4 文件具有不正确的 date-created 属性。

我还有一个 .csv 文件,它按时间顺序列出了 videos 中的所有文件(使用各自的文件名)。

第一个文件从 2019 年 11 月 15 日开始,每个后续视频都是在前一个视频之后创建的。

powershell 如何使用 .csv 文件中的文件行帮助我修改每个文件的 date-created 属性。

CSV 文件: 包含按时间顺序排列的文件名

video1
video2
video3
...

视频文件夹:

name    date created

video1  dd/mm/yyyy
video2  dd/mm/yyyy
video3  dd/mm/yyyy
...     ...        <---- dates are incorrect

我想要什么:

name    date created

video1  15/11/2019
video2  16/11/2019
video3  17/11/2019
...     ...        <---- dates are in chronological order according to .csv file

感谢您的帮助!

假设:

A) 你所有的文件都在同一个文件夹中 或 B) 您的 CSV

中有完整路径

AND C) 你的 csv 文件 header 被称为 filename

$csvfile = 'Path\to\csvfile.csv'
$startdate = Get-Date 11/15/2019

Set-Location Path\to\videofiles

Import-Csv $csvfile | ForEach-Object {

    #set creationtime
    (Get-Item $_.filename).CreationTime = $startdate

    #increase date by one day
    $startdate = $startdate.AddDays(1)
}

@Doug Maurer 提供了一个不完整的答案(没有用)所以这里是有效的解决方案:

$csvfile = 'path/to/csvfile.csv'
$startdate = [datetime]::ParseExact('15/11/2019','dd/MM/yyyy',$null) 

Set-Location 'path/to/folder'

Import-Csv $csvfile | ForEach-Object {

    #set creationtime
    (Get-Item $_.filename).CreationTime = $startdate

    #increase date by one day
    $startdate = $startdate.AddDays(1)
}