我正在尝试使用批处理文件从特定文件夹中删除超过30天的.rar文件。但是我现在批处理文件删除了超过30天的任何文件,我想将其限制为.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
答案 0 :(得分: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
。 1}}也不需要。{/ p>