2015-02-05 86 views
0

我正在尝试使用批处理文件从某个文件夹中删除超过30天的.rar文件。然而,我现在拥有的批处理文件会删除超过30天的任何文件,我只想限制为.rar文件。我的代码如下。是否可以使用Windows批处理文件来删除某些rar文件?

REM ******************************************************************* 
REM Deleting database backups older than 30 days. 

@echo off 
@Echo Deleting database backups older than 30 days... 
rem echo y|forfiles /p C:\Batch\Archives\*.rar /d -30 /c "cmd /c del @path" 

pause 

EXIT 

回答

1

如果你看一下forfiles的帮助,你将看到/P参数仅仅是路径。您需要为文件掩码使用/M参数。所以,你应该这样做:

forfiles /p C:\Batch\Archives /m *.rar /d -30 /c "cmd /c del @path" 

对我来说,没有必要回应一个“Y”确认。但如果您的情况del要求确认,请使用其参数/Q

在一边没有,使用@echo off后不需要再使用@。您可以在第一行使用@echo off,或者在每行之前放置一个@,这两者都不是必需的,会使文件更加丑陋。 此外,我会将@echo off放在那些REM之前,以免它们显示出来。如果你想显示这些消息,只需使用echo。最后的EXIT也不需要。

+0

这仍然没有工作 – kram12 2015-02-05 15:13:23

+0

我复制了你的场景并像魅力一样工作。你有什么问题/错误?如果用'echo'替换'del',你会得到什么结果? – Andrew 2015-02-05 15:22:24

+0

它不会删除任何文件夹 – kram12 2015-02-05 15:30:32

相关问题