如何解决在Windows 10中使用CSV数据修改多个视频的创建日期的属性?
我真的不知道哪种方法最适合。 Powershell可能就是我想要的...
我看到了这个:need to change file created date based on csv(4年前)
,想知道它是否仍然有用。
我有一堆.mp4文件,它们在Windows 10中具有随机date created
属性。
我还有一个excel电子表格/ csv文件,该文件的顺序是我要重新命名文件的顺序,因此第一行是第一视频,第二行是第二视频(按正确的顺序)。 / p>
所以我想知道是否可以使用powershell根据该csv文件中文件的(行)索引来重新命名文件。日期从2019年11月15日开始,从那时起所有视频均相隔1天。
csv文件中的文件名以正确的顺序排列,并且在mp4文件夹中具有完全相同的名称。但是,它们不会以任何方式排序。
CSV文件: 包含按创建日期顺序排列的文件名
video1
video2
video3
...
MP4文件夹之前:
name date created
video1 dd/mm/yyyy
video2 dd/mm/yyyy
video3 dd/mm/yyyy
... ... <---- dates here are all messed up
MP4文件夹: 我到底想要什么
name date created
video1 15/11/2019
video2 16/11/2019
video3 17/11/2019
... ... <---- more files (same number as in csv file)
根据您对问题的了解,随意更改此问题的内容。
谢谢!
解决方法
假设:
A)您的所有文件都在同一文件夹中 或B)您在CSV文件中拥有完整路径
AND C)您的csv文件头称为 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)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。