我在 ServerFault 上发现了以下问题:
这个答案部分回答了我的问题:
但是,我想触碰所有比 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
}
}
应该可以奏效。