如何编写批处理文件以按时删除文件夹和文件?

时间:2009-03-09 09:57:07

标签: scripting batch-file

完全重复:

我想写一个批处理文件来按时删除文件夹,子文件夹和临时文件。

条件是这样的:

  • 我需要在文件夹前一小时将文件删除到当前运行时间。
  • 我想从系统获取当前时间并删除文件前一小时
  • 文件格式如下:<file name> <date>
  • 时间格式为dd-mm-yyyy-hh-mmdd-mm-yy-hh-mm

2 个答案:

答案 0 :(得分:2)

批量可能非常强大,但我不认为你想要的那种日期操作是实用的。

您可以使用FOR将日期拆分为元素,然后使用SET /A进行减法,但之后您将需要大量的IF和{{ 1}}语句用于处理从1月1日午夜的一半减去一小时的情况。

我认为你最好调查VBSPowershell

答案 1 :(得分:1)

您可能希望尝试使用此脚本从文件夹中删除超过1小时的文件。

# Script Delete1Hour.txt
var str folder, list, file
cd $folder
lf -n "*" $folder ($ftype=="f") AND ( $fmtime < addtime(diff("-10000")) ) > $list
while ($list <> "")
do
    lex "1" $list > $file
    system del ("\""+$file+"\"")
done

这是biterscripting。重要的命令是

lf -n "*" $folder ($ftype=="f") AND ( $fmtime < addtime(diff("-10000")) )

告诉biterscripting - 给我$ folder文件夹中的所有条目,其名称与模式“*”匹配,文件类型为“f”(平面文件,不是目录),文件修改时间($ fmtime)更早超过1小时。请参阅http://www.biterscripting.com/helppages/lf.html上的lf命令的文档。

将脚本保存在文件C:/Scripts/Delete1Hour.txt中,将其作为

运行
script  "C:/Scripts/Delete1Hour.txt" folder("C:/testfolder")

它将删除C:/ testfolder中超过1小时的所有文件。