簡體   English   中英

PowerShell 根據多個文件的特定日期更改“修改日期”

[英]PowerShell to change "Date Modified" base on a specific date for Multiple Files

我正在嘗試更改特定文件夾中超過 2K 文件的“修改日期”(LastWriteTime)。 所有文件均在同一天修改。 但是,它確實有多次。 所以,基本上我想要完成的是:

Myfile1.Zip --> 修改日期 = "1/4/2022 12:21 PM" ==> 修改日期 = "1/3/2022 9:00 AM"

Myfile2.Zip --> 修改日期 = "1/4/2022 12:25 PM" ==> 修改日期 = "1/3/2022 9:00 AM"

這意味着在 2021 年 1 月 4 日修改的所有文件都需要將“修改日期”顯示為 2021 年 1 月 3 日,時間在這里真的無關緊要。

是否可以使用 PowerShell 腳本進行批量更改? 我對它一點也不熟悉,需要盡快做出改變。

在此先感謝您的幫助。

您可以檢查Get-ChildItem返回的文件系統對象的現有LastWriteTime屬性,然后為其分配一個新值:

# define date/time variables
$filterDate = (Get-Date -Day 4 -Month 1 -Year 2022).Date
$targetDateTime = Get-Date -Day 3 -Month 1 -Year 2022 -Hour 9 -Minute 0 -Second 0

# locate and filter relevant files
$relevantFiles = Get-ChildItem -Path .\path\to\folder\ |Where-Object { $_.LastWriteTime.Date -eq $filterDate }

# update their timestamps
$relevantFiles |ForEach-Object {
  $_.LastWriteTime = $targetDateTime
}

取消對現有[DateTime]值的Date屬性的引用會為您提供午夜的日期,因此無論文件是在凌晨 1 點還是下午 6 點更新,比較$_.LastWriteTime.Date -eq $filterDate都將起作用,只要它是1 月 4 日。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM