2009-02-19 8 views

risposta

8

Utilizzare il comando SET con l'opzione/P.

+2

come su un timeout e un default? – Baczek

6
SET /P RESULT=Y or N? 
ECHO %RESULT% 
6

Nota che il comando SET /P non supporta tutte le stesse caratteristiche del comando CHOICE. Vale a dire:

  • Esso non limita l'utente ad entrare in un valore valido
  • L'utente deve premere invio
  • Devi controllare le differenze di rivestimento (ad esempio "A" vs "a")
  • non c'è modo di passare automaticamente a una certa scelta, dopo un certo periodo di tempo

per queste ragioni, io preferisco usare il comando CHOICE piuttosto che il comando SET /P. Per fare questo, è sufficiente includere CHOICE.COM insieme al file batch. È possibile scaricare CHOICE.COM da Microsoft tramite il disco supplementare MS2-DOS 6.22 . Ecco il link:

http://support.microsoft.com/kb/117600

+0

Sfortunatamente "choice.com" non funziona con i sistemi a 64 bit. – Paulius

+2

Credo che Windows 7 a 64 bit includa "CHOICE.EXE". Almeno, le mie macchine ce l'hanno e sono abbastanza sicuro di non averlo messo lì io stesso. – aphoria

+0

Sei corretto @aphoria, il mio ha choice.exe e non l'ho nemmeno messo lì :) – MikeRoger

1

Per esempio è possibile utilizzare questo:

SET /P ANSWER=y OR n? 
If "%answer%"=="y" goto yes 
If "%answer%"=="n" goto no 

Enjoy!

2

Ciò simulerà fondamentalmente la scelta, sarà necessario inserirlo come subroutine nel file batch. Preferisco anche la scelta, ma ho bisogno di qualcosa di portatile che funzioni su Windows XP.

È quindi possibile modificare questo per accettare altre "scelte", tuttavia ciò funzionerà come maiuscole e minuscole e ripetere la richiesta fino a quando l'utente immetterà esplicitamente Y, y, N o n.

:yesorno 
set /p choice=%2 
if /i NOT %choice% == n (
    if /i NOT %choice% == y goto yesorno 
) 
set "%~1=%choice%" 
goto :eof 

Si potrebbe quindi chiamare questa subroutine tramite:

call :yesorno answer "Do you want to continue? [Y/n]: " 

è lavorato molto bene per me finora.

-1

Windows Millenium's CHOICE.COM funziona correttamente con XP SP3. Tuttavia, il mio è un linguaggio ungherese, ma probabilmente è possibile trovare la sua variante inglese originale, ad esempio la ricerca di "windows millenium ebd".

http://s000.tinyupload.com/index.php?file_id=57468192666746678653

+0

L'ho messo in C: \ windows per essere raggiungibile da qualsiasi luogo. – BlueWings

+0

Benvenuti in SO. Si prega di fornire la soluzione direttamente nella risposta. Inoltre, leggere: https://stackoverflow.com/help/answering –

Problemi correlati