A27:
Следующий батник и/или choice.exe ведёт себя не совсем корректно. При запуске он ждёт нажатия клавиш (A, B, Q), если они не были нажаты, то choice.exe по истечении пяти секунд выбирает вариант по умолчанию, а если нажать A или B, то при следующем вызове choice.exe, вариант по умолчанию автоматически уже не выбирается.
Если из батника исключить строчку с циклом for, то автоматический выбор срабатывает корректно. Либо если изменить строку "Set /p ..." так, чтобы запись в файл была указана в начале строки (>Saved.txt Set /p "С=%A% %B%"<NUL), то автоматический выбор тоже начинает корректно срабатывать.
Вопрос: Как и почему это всё связано между собой?
Код:
Следующий батник и/или choice.exe ведёт себя не совсем корректно. При запуске он ждёт нажатия клавиш (A, B, Q), если они не были нажаты, то choice.exe по истечении пяти секунд выбирает вариант по умолчанию, а если нажать A или B, то при следующем вызове choice.exe, вариант по умолчанию автоматически уже не выбирается.
Если из батника исключить строчку с циклом for, то автоматический выбор срабатывает корректно. Либо если изменить строку "Set /p ..." так, чтобы запись в файл была указана в начале строки (>Saved.txt Set /p "С=%A% %B%"<NUL), то автоматический выбор тоже начинает корректно срабатывать.
Вопрос: Как и почему это всё связано между собой?
Код:
@Echo Off Set A=0 Set B=0 If exist Saved.txt For /f "Tokens=1,2" %%A in (Saved.txt) do Set "A=%%A" & Set B=%%B :Show Cls Echo.A: %A% Echo.B: %B% Echo. Echo.[A] A+1 Echo.[B] B+1 Echo.[Q] Quit Echo. Choice.exe /N /C ABQ /D Q /T 5 >NUL If ErrorLevel 3 Goto Quit If ErrorLevel 2 Set /a "B+=1" & Goto Save Set /a A+=1 :Save Set /p "С=%A% %B%"<NUL>Saved.txt Goto Show :Quit |