批处理文件,删除超过10天的文件夹中的所有文本文件,但某些文件除外

时间:2017-01-27 16:50:48

标签: batch-file for-loop cmd

我是批处理文件的新手,尝试编写一个将删除10天以上文件夹中所有.txt文件的文件,除了一个名为template.txt的文件。这是怎么做到的?我有以下但它删除所有txt文件超过10天。感谢您的帮助。

forfiles /p "C:\test" /s /m *.txt /c "cmd /c del @path" /d -10

1 个答案:

答案 0 :(得分:1)

只需将转义实施到forfiles运行的命令行中,如下所示:

forfiles /S /P "C:\test" /M "*.txt" /D -10 /C "cmd /C if @isdir==FALSE if /I not @file==0x22template.txt0x22 del @path"

if @isdir==FALSE部分是为了排除任何目录被进一步处理,以防其名称末尾有.txt(虽然不太可能),因为forfiles列举了两个目录文件和目录。

if /I not @file==0x22template.txt0x22变为if /I not "<name of currently iterated item>"=="template.txt",并排除名为template.txt的文件被删除。 /I选项使比较不区分大小写,例如Windows也会处理文件和目录路径。