Я использую это простое меню в 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 и / или пробел , но не работает. это выглядит так:

     select this by pressing 0

     select this by pressing 1

press something:_

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

     select this by pressing 0

     select this by pressing 1

     press something:_

1 ответ1

1

Вы можете использовать некоторый управляющий символ, например, клавишу 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

==>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .