我希望可以通过一些 PowerShell 技巧来解决这个问题。
我的工作机器(Windows XP)上有一个目录,里面有大量 PDF,其中一些我已注释并重新保存。我希望能够使用以下简单的启发式方法识别我已注释的文件:查找修改日期比创建日期更近的文件。我不想只按修改日期排序,因为许多未注释但最近添加的 PDF 会使列表混乱。
此外,有时在保存后我会立即对文件进行一些快速编辑,这会触及修改日期,但没有什么意义。因此,如果我能够仅识别修改日期比创建日期晚 1 天以上的文件,那么我就没问题了。有没有关于使用命令的想法,我应该在 powershell 中执行此操作吗?
答案1
您可能想对输出进行一些格式化,但请尝试以下操作:
Get-ChildItem F:\Temp\* -recurse -include *.pdf | ForEach-Object { If (($_.LastWritetime - $_.CreationTime).Days -gt 1) { Write-Host $_.Name } }
用您自己的路径替换“F:\Temp\”。
答案2
尝试这样的操作:
ls C:\Path | ?{($_.LastWriteTime - $_.CreationTime).Days -gt 1} |
Select Name,CreationTime,LastWriteTime | Export-CSV .\Annotated.csv
这将提供最后写入时间减去创建时间大于一天(一天后修改的任何内容)的文件列表,并将其导出到工作目录中的 CSV。
您可以添加-recursive
和-include *.pdf
分别用于递归和 PDF 过滤。