删除最后修改的文件的批处理文件今天没有

时间:2009-05-24 14:06:52

标签: batch-file text-files delete-file

我只是想知道:

如果最后修改不是今天,我如何删除'log.txt'?

使用批处理文件。

我刚才在这里谈论1个文件!

5 个答案:

答案 0 :(得分:2)

PowerShell必须替换批处理。

if ((dir log.txt).LastWriteTime -lt [datetime]::today) { del log.txt }

答案 1 :(得分:1)

不幸的是,你无法以强大而通用的方式(*)做到这一点。

如果你能确定它们将被安装在目标机器上,那么Powershell,Cygwin,Unix Tools是非常好的解决方案。

我写了一个小实用程序,它使用带有通配符和天数的路径,并删除所有与指定天数之前的路径匹配的文件。在我的环境中,这比安装第三方软件包更方便。

(*) 只要您的区域设置中的短日期格式包含世纪(即长度为10个字符),以下内容适用于您的特定情况(修改日期不是今天)。但它没有概括N天,我不喜欢依赖计算机的区域设置来做这种事情:

for %%i in (log.txt) do SET FILETIME=%%~ti
IF NOT "%FILETIME:~0,10%" == "%DATE%" DEL /f log.txt

答案 2 :(得分:1)

您可以使用forfiles

forfiles /D -1 /M log.txt /C "cmd /c del @file"

答案 3 :(得分:0)

批量生成简单非常复杂的东西。 如果您可以使用Cygwin或安装Unix Tools,请考虑做以下事情:

find log.txt -mtime +1 -exec rm {} \;

<强>更新
使用纯批次找到可能useful的内容。您应该能够修改它并根据您的需要进行调整。

答案 4 :(得分:0)

为了它的价值,你可以使用jscript或vbscript。自90年代中期以来,这两种脚本语言都已安装在MS平台上