Код:
![Выделить весь код](images/misc/selectcode.png)
@Echo Off
cls
Set "Out=Q:\testbat\2"
Set "In=Q:\testbat\1"
Set "Dt=%date:~8,2%%date:~3,2%%date:~0,2%"
SetLocal EnableExtensions EnableDelayedExpansion
Call :Number "%Out%" "AN03722" "%In%" "0 1 2 6"
Call :Number "%Out%" "BN03722" "%In%" "3 4 5 7"
GoTo :Eof
:Number
Set "P_N=%~2"
Set "M_N=%~1\%P_N%%Dt%"
Set "Out_N=%P_N%%Dt%0000"
FOR /F "usebackq delims=" %%i IN (`Dir /b /A:-D /O:-N "%M_N%????.*" 2^>Nul`) DO (
Set "Out_N=%%~ni"
GoTo :Continue
)
:Continue
Set NN=1%Out_N:~-4%
FOR %%N IN (%~4) DO (
If Exist "%~3\s*_*_*_%%N*.txt" (
Set /A NN=!NN!+1
Echo ARJ32.exe m -e "%M_N%!NN:~-4!" "%~3\s*_*_*_%%N*.txt"
)
)
Для "боевого" использования уберите Echo перед arj. У меня нет arj, подозреваю, команда m после архивации удаляет файлы. Батник смотрит на номер последнего за день архива и для новых архивов его наращивает