Substituir set / p linha em lote?

0

Eu tenho um script que pede entrada do usuário com o comando set /p msg="Enter Message>" que funciona bem, mas eu queria saber se eu poderia tê-lo, em seguida, remover a linha que tinha criado com o comando set.
saída atual após set:

Hello there
My name is Bob
Enter Message> 1234
great 1234

Saída desejada após o conjunto:

Hello there
My name is Bob
great 1234
    
por Mark Deven 28.06.2018 / 14:40

1 resposta

1

Consegui fazer isso usando CLS . Embora possamos imprimir outra mensagem na mesma linha em alguns casos. Mas não tenho certeza se isso pode ser feito depois de pressionar a tecla ENTER na entrada do usuário.

Se você deseja substituir a mesma linha sem entrada do usuário, consulte esta pergunta.

Eu usei duas entradas e saídas apenas para verificar se está funcionando como esperado. Então, adicionamos outra linha na saída de amostra que você forneceu.

Aqui está um arquivo em lote criado para duas entradas do usuário.

@ECHO OFF
SET UserInput1Done=0
SET UserInput2Done=0
:Start
CLS
ECHO Hello there
ECHO My name is Bob
IF %UserInput1Done%==0 (
    SET /P msg1="Enter Message 1>"
    SET UserInput1Done=1
    GOTO Start
)
ECHO great %msg1%
IF %UserInput2Done%==0 (
    SET /P msg2="Enter Message 2>"
    SET UserInput2Done=1
    GOTO Start
)
ECHO great %msg2%

Aqui está a saída do arquivo de lote acima.

    
por 28.06.2018 / 16:36

Tags