Sostituire set / p line in batch?


0

Ho uno script che richiede l'input dell'utente con il comando set /p msg="Enter Message>" Che funziona bene, ma mi chiedevo se potevo averlo, quindi rimuovere la linea che aveva creato con il comando set.
uscita corrente dopo set:

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

Output desiderato dopo il set:

Hello there
My name is Bob
great 1234

Non penso che tu possa cancellare 1 riga dalla console che è stata stampata, ma puoi fare un prompt vuoto o cls per cancellare completamente lo schermo
Drako

Risposte:


1

Sono stato in grado di farlo usando CLS. Anche se in alcuni casi possiamo stampare un altro messaggio sulla stessa linea. Ma non sono sicuro che possa essere fatto dopo aver premuto ENTER tasto sull'input dell'utente.

Se vuoi sovrascrivere la stessa riga senza l'input dell'utente, puoi guardare Questo domanda.

Ho usato due input e output solo per verificare se funziona come previsto. Quindi, aggiunta un'altra riga nell'output di esempio che hai fornito.

Ecco un file batch creato per due input utente.

@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%

Qui è l'output del file batch sopra.

enter image description here


Sì, ho bisogno di evitare cls, quindi non funzionerà. Comunque mi piace il tuo modo di pensare ed è il meglio che ho intenzione di pensare, quindi accetterò.
Mark Deven
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.