alpap
22-02-2017, 22:06
Допустим такой вариант:
@echo off
set [=
for %%a in (a b c d e f d h i) do call :# "%%a"
pause
:#
set/a m+=1
if "%~1"=="d" if not defined [ set [=]& echo Запуск set/a n+=1
echo %n% %m%
exit /b
надо запустить в этой же итерации еще один счетчик с отставанием по-отношению к первому (он должен запускаться итерацией) или (на крайний случай - не желательно) срыв по определенной (той же) команде. Первый счетчик работает весь шаг на увеличение, его трогать нельзя, использовать можно. Условие (может быть несколько соответствий) должно пропустить только первую выборку (в примере d повторяется) и запуск счетчика должен произойти единожды и далее работать на увеличение уже независимо.
Требуется примерно:
счет по команде
...................: a b c d e f d h i
set/a m+=1: 1 2 3 4 5 6 7 8 9
set/a n+=1 : 0 0 0 1 2 3 4 5 6
или прерывание по команде
...................: a b c d e f d h i
set/a m+=1: 1 2 3 4 5 6 7 8 9
set/a n+=1 : 1 2 3 0 1 2 3 4 5
идет счет (допустим имен файлов) на увеличение
1 2 3 4 5 6 7 8 9
на каком-то этапе счета наступает условие (нашли нужное имя (а может после него и еще такое же быть)) и по его однократному выполнению, не прекращая основного счета, начинается новый счет
основной 1 2 3 4 5 6
....новый 0 0 1 2 3 4
до начала нового счета необязательно нули, может быть ничего или единицы, но не более
не обязательно два счетчика, если это сделает один, как-то хитро узнавая сколько надо отнимать и выдавать разницу (вывод отдельной переменной)
1 2 3 4 5 6 7 8 9
(отнимаем 5 с нужного места, а именно после 5ти - произошло условие в это время)
0 0 0 0 0 1 2 3 4
но как это сделать?
@echo off
set [=
for %%a in (a b c d e f d h i) do call :# "%%a"
pause
:#
set/a m+=1
if "%~1"=="d" if not defined [ set [=]& echo Запуск set/a n+=1
echo %n% %m%
exit /b
надо запустить в этой же итерации еще один счетчик с отставанием по-отношению к первому (он должен запускаться итерацией) или (на крайний случай - не желательно) срыв по определенной (той же) команде. Первый счетчик работает весь шаг на увеличение, его трогать нельзя, использовать можно. Условие (может быть несколько соответствий) должно пропустить только первую выборку (в примере d повторяется) и запуск счетчика должен произойти единожды и далее работать на увеличение уже независимо.
Требуется примерно:
счет по команде
...................: a b c d e f d h i
set/a m+=1: 1 2 3 4 5 6 7 8 9
set/a n+=1 : 0 0 0 1 2 3 4 5 6
или прерывание по команде
...................: a b c d e f d h i
set/a m+=1: 1 2 3 4 5 6 7 8 9
set/a n+=1 : 1 2 3 0 1 2 3 4 5
идет счет (допустим имен файлов) на увеличение
1 2 3 4 5 6 7 8 9
на каком-то этапе счета наступает условие (нашли нужное имя (а может после него и еще такое же быть)) и по его однократному выполнению, не прекращая основного счета, начинается новый счет
основной 1 2 3 4 5 6
....новый 0 0 1 2 3 4
до начала нового счета необязательно нули, может быть ничего или единицы, но не более
не обязательно два счетчика, если это сделает один, как-то хитро узнавая сколько надо отнимать и выдавать разницу (вывод отдельной переменной)
1 2 3 4 5 6 7 8 9
(отнимаем 5 с нужного места, а именно после 5ти - произошло условие в это время)
0 0 0 0 0 1 2 3 4
но как это сделать?