Here is what I want, inside the
BACKUPDIR
, I want to executecscript /nologo c:\deletefile.vbs %BACKUPDIR%
until number of files inside the folder is greater than 21(countfiles
holds it).
Here is my code:@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% )
Answer
set /a countfiles-=%countfiles%
This will set countfiles to 0. I think you want to decrease it by 1, so use this instead:
set /a countfiles-=1
I’m not sure if the for loop will work, better try something like this:
:loop
cscript /nologo c:\deletefile.vbs %BACKUPDIR%
set /a countfiles-=1
if %countfiles% GTR 21 goto loop
Attribution
Source : Link , Question Author : Hellnar , Answer Author : schnaader