这是我想要的,在BACKUPDIR
内,我要执行cscript /nologo c:\deletefile.vbs %BACKUPDIR%
,直到文件夹内的文件数大于21(countfiles
保留了它)。
这是我的代码:
@echo off
SET BACKUPDIR=C:\test
for /f %%x in ('dir %BACKUPDIR% /b ^| find /v /c "::"') do set countfiles=%%x
for %countfiles% GTR 21 (
cscript /nologo c:\deletefile.vbs %BACKUPDIR%
set /a countfiles-=%countfiles%
)
最佳答案
set /a countfiles-=%countfiles%
这会将countfiles设置为0。我想您希望将其减少1,因此请改用此方法:
set /a countfiles-=1
我不确定for循环是否会工作,最好尝试如下操作:
:loop
cscript /nologo c:\deletefile.vbs %BACKUPDIR%
set /a countfiles-=1
if %countfiles% GTR 21 goto loop