Inserire una nuova riga con il prompt di scelta del parametro impostato [duplicato]


0

Questa domanda ha già una risposta qui:

Sto lavorando a uno script che chiede all'utente una scelta, che quindi indirizza l'utente a un'altra scelta che utilizzerà setper posizionare un parametro in base a ciò che hanno inserito. La scelta ha una richiesta seguita da una descrizione che viene inserita di seguito. Ecco il mio codice attuale:

:compress
cls
echo.
setlocal EnableDelayedExpansion
echo Type the payload name here:
set /p compress="(Don't include extensions)"
set LF=^
echo 
echo.

Voglio il prompt di scelta sulla riga quattro, la descrizione sulla riga cinque e il cursore di input sotto la descrizione sulla riga sei. Il mio script corrente posiziona il cursore immediatamente dopo la descrizione. Come faccio a spostare l'indicatore di input dell'utente sulla riga sei con il mio prompt dei parametri impostato?


1
È una caratteristica di set /pmantenere il cursore sulla stessa riga, quindi fai eco alla tua descrizione e hai un prompt set / p vuoto. Altrimenti puoi ottenere il posizionamento assoluto / relativo del cursore con le recenti versioni di Windows 10 con sequenze di escape ansi.
LotPings,

1
Non sono sicuro di aver capito la tua domanda, ma fa ciò che chiedi:echo Type the payload name here: / echo (Don't include extensions) / set LF=^ / echo. / echo. / set /p compress=" "
Twisty Impersonator

Sì, @Twisty Impersonator, anche il tuo metodo funziona. Ci scusiamo per la domanda confusa ...
Sig. Mendelli,

Risposte:


1

Come ho già risposto un mese fa :

I comandi negli script batch vengono eseguiti dall'alto verso il basso e anche il loro output va dall'alto verso il basso. Se si desidera scambiare due righe di testo, è sufficiente scambiare i comandi che li generano.

Vuoi due righe di testo, seguite dal cursore di input?

  1. Utilizzare echoper stampare la prima riga di testo.
  2. Utilizzare echoper stampare la seconda riga di testo.
  3. Utilizzare set /pper ricevere input.

Esempio:

echo Type the payload name here:
echo (Don't include extensions)
set /p compress=

Vedo, ho pensato che la sintassi potrebbe essere stata diversa a causa del set comando. Ho provato il tuo metodo dalla mia domanda precedente qui, ma ho fatto un errore con conseguente fallimento. Grazie ancora per l'aiuto.
Signor Mendelli,
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.