как дополнить вывод SET / P?

268
user902300

Я использую это простое меню в cmd, где я добавил свои ECHO с помощью TABключа:

:MENU  ECHO select this by pressing 0 ECHO( ECHO select this by pressing 1 ECHO( SET /P ANSWER="press something:" 

Есть ли способ, как дополнить вывод SET /P ANSWER=??

Я пытался с TABэтим и / или SPACEэто, но не работает. это выглядит так:

 select this by pressing 0  select this by pressing 1  press something:_ 

и я хочу, чтобы это выглядело так:

 select this by pressing 0  select this by pressing 1  press something:_ 
0

1 ответ на вопрос

1
JosefZ

Вы можете использовать некоторый управляющий символ, например, backspace ( U+0008), как в следующем фрагменте кода; подсказка: одиночные нажатия клавиш могут быть получены с клавиатуры с помощью choiceкоманды (см. сценарий)

@ECHO OFF SETLOCAL EnableExtensions  rem get backspace character to BS variable for /F %%a in ('echo prompt $H ^| cmd') do set BS=%%a  :MENU ECHO( ECHO select this by pressing 0 ECHO( ECHO select that by pressing 1 ECHO( rem ↓ this character is deleted in output by backspace SET /P "ANSWER=X%BS% press something: " ECHO( echo "%ANSWER%" entered; another approach using CHOICE command: ECHO( CHOICE /C 01 /N /M "X%BS% Select [0] this or [1] that: " 

Выход :

==> D:\bat\SU\1324661.bat  select this by pressing 0  select that by pressing 1  press something: s  "s" entered; another approach using CHOICE command:  Select [0] this or [1] that: 1  ==>