我有几千张照片&目录中的视频,我想要更改所有lastAccess,lastWrite,... date。
我的文件全部命名为'IMG_20170101_120000.png'。
我想为每个文件更改lastAccessDate,因为日期在文件名中。
当然还有其他方法,但我发现了一些在powershell中运行它的语句
$(ls IMG_20170101_120000.png).LastAccessTime = (Get-Date "2017-01-01T12:00:00")
但现在我想自动为目录中的所有这些文件执行此操作。
有人可以帮助我吗?
感谢您的帮助!
答案 0 :(得分:0)
此代码应该可以执行您想要的操作。
$Files = Get-ChildItem -Path $YourPath -Filter "*.png"
Foreach($File in $Files){
try{
$FileName = $File.BaseName
$FileName =$FileName.Replace("IMG_","")
$FileName =$FileName.Replace("_","")
$File.LastAccessTime = [datetime]::ParseExact("$($filename.Substring(0,4))-$($filename.Substring(4,2))-$($filename.Substring(6,2)) $($filename.Substring(8,2)):$($filename.Substring(10,2))", "yyyy-MM-dd HH:mm", $null)
}catch{"Wrong filename"}
}
请查看powershell文档,因为您的代码难以阅读,无法使用。