我是批处理文件的新手,尝试编写一个将删除10天以上文件夹中所有.txt文件的文件,除了一个名为template.txt的文件。这是怎么做到的?我有以下但它删除所有txt文件超过10天。感谢您的帮助。
forfiles /p "C:\test" /s /m *.txt /c "cmd /c del @path" /d -10
答案 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也会处理文件和目录路径。