我经常使用各种 shell 脚本创建日志/报告文件。这很好,但大多数时候我只需要简单地看一下内容——通常是同一天或最多一周后。
我想做的是能够将文件标记为过期,因此在给定的时间段后,文件要么被删除,要么被移动到存档目录。
由于我可以控制文件的创建,我当然可以给它一个特定的扩展名,例如 .SEF 并编写一个服务来定期解析我硬盘上的目录,但这似乎有点笨拙。
我还研究了自定义文件属性:
http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/173ab6de-3cd8-448f-8c42-de9d2240b913
但是我需要写一些东西来将文件属性添加到文件中。所以在 Powershell/SFU 或类似的:
cat JobOutput.txt | grep -e Error | expire > report.txt
或普通的旧窗户:
type JobOutput.txt | findstr Error | expire > report.txt
有没有人远程做过这样的事情?
编辑:
我上面描述的只是我想做的事情的一个方面。例如,您可能希望发送一封电子邮件,该电子邮件需要在一定时限内回复,然后在该时间限制后被删除。
另一个示例可能是您发布的文档,其中包含您不希望在给定时间后使用的临时系统解决方法的详细信息。
当然,我们现在对各种应用程序的变幻莫测,但自定义文件属性的想法看起来很有希望和吸引力。问题当然是如何将它们应用于每种文件类型......
现在,我很高兴根据我最初提出的问题来关闭它,在这种情况下,我可以定义一个自定义扩展,它会被预定的作业清除。
解决方案:
好的,我决定使用 Powershell 解决方案(稍作调整),因为我对此非常熟悉:
$HowManyDays = 15
$LastWrite = (Get-Date).AddDays(-$HowManyDays)
Get-ChildItem -recurse -include *.sef |
Where {$_.LastWriteTime -le "$LastWrite"} |
Remove-Item
非常感谢您对此的帮助。