Для разработки портативных сетевых программ любого вида в Python, Скрученный довольно полезно. Одно из его преимуществ обеспечивает удобный слой выше API сокета низкого уровня.
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
Цикл while
можно смоделировать в cmd.exe
с помощью:
:still_more_files
if %countfiles% leq 21 (
rem change countfile here
goto :still_more_files
)
Например, следующий сценарий:
@echo off
setlocal enableextensions enabledelayedexpansion
set /a "x = 0"
:more_to_process
if %x% leq 5 (
echo %x%
set /a "x = x + 1"
goto :more_to_process
)
endlocal
выводит:
0
1
2
3
4
5
В вашем конкретном случае я бы начал со следующего. Ваше первоначальное описание было немного запутанным. Я предполагаю, что вы хотите удалить файлы в этом каталоге, пока их не станет 20 или меньше:
@echo off
set backupdir=c:\test
:more_files_to_process
for /f %%x in ('dir %backupdir% /b ^| find /v /c "::"') do set num=%%x
if %num% gtr 20 (
cscript /nologo c:\deletefile.vbs %backupdir%
goto :more_files_to_process
)