PowerShell 触摸所有更新的文件

PowerShell 触摸所有更新的文件

我在 ServerFault 上发现了以下问题:

Windows 递归触摸命令

这个答案部分回答了我的问题:

Windows 递归触摸命令

但是,我想触碰所有比 2013 年 1 月 31 日 (31/01/13) 更新的文件(根文件夹和子文件夹(递归)中)。我该怎么做?

我有 PowerShell 2 可用。

更新:

我发现该脚本获取了我想要的所有文件:

Get-ChildItem C:\path\to\files -recurse | Where-Object { $_.LastWriteTime -ge [DateTime] "1/31/2013 9:00AM" }

但我不确定如何将它与“触摸”命令结合起来:

(ls file).LastWriteTime = DateTime.now

以下内容似乎合乎逻辑,但我无法测试它,因为备份我的文件会搞乱我的文件的修改日期/时间:

(Get-ChildItem C:\path\to\files -recurse | Where-Object { $_.LastWriteTime -ge [DateTime] "1/31/2013 9:00AM" }).LastWriteTime = DateTime.now

那么,这会起作用吗?

答案1

对于我来说,使用 Unix touch 的 Powershell 似乎很愚蠢。

相反,只需使用本机 Powershell cmdlet。

本文介绍了它:

本质上:

Get-ChildItem -Path $youFolder -Recurse | Foreach-Object {
    if ($_.LastWriteTime -ge [DateTime] "1/31/2013 9:00AM")
    { 
        $_.LastWriteTime = Get-Date
    }
}

应该可以奏效。

相关内容