C'è un modo per richiedere agli utenti l'input (es: Yes/No) da uno script batch di Windows che funziona su server XP e Windows 2003? Sembra che alcuni comandi (cioè: scelta) funzionino solo su un SO e non su altri.Comando di selezione batch di Windows per Windows XP e 2003
risposta
Utilizzare il comando SET con l'opzione/P.
SET /P RESULT=Y or N?
ECHO %RESULT%
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:
Sfortunatamente "choice.com" non funziona con i sistemi a 64 bit. – Paulius
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
Sei corretto @aphoria, il mio ha choice.exe e non l'ho nemmeno messo lì :) – MikeRoger
Per esempio è possibile utilizzare questo:
SET /P ANSWER=y OR n?
If "%answer%"=="y" goto yes
If "%answer%"=="n" goto no
Enjoy!
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.
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
L'ho messo in C: \ windows per essere raggiungibile da qualsiasi luogo. – BlueWings
Benvenuti in SO. Si prega di fornire la soluzione direttamente nella risposta. Inoltre, leggere: https://stackoverflow.com/help/answering –
come su un timeout e un default? – Baczek