PDA

Visualizza versione completa : [Batch] Come creare un men¨ per avviare diversi programmi in base alla scelta fatta


gutguy
06-06-2006, 15.02.35
Ciao,
Vorrei creare un men¨ per un mio batch dove si possa scegliere cosa fare in base al tasto premuto, es.:
Se spingi 1 installa tizio caio
se spingi 2 installa pinco palla ecc

il fatto Ŕ che non mi ricordo pi¨ come si faceva ....

LoryOne
06-06-2006, 16.28.37
@echo off
echo 1 - pippo
echo 2 - pluto
echo 3 - paperino
choice /c:123
if errorlevel 3 goto 3
if errorlevel 2 goto 2
if errorlevel 1 goto 1
:1
echo scelto pippo
goto 4
:2
echo scelto pluto
goto 4
:3
echo scelto paperino
:4
echo fine

gutguy
07-06-2006, 10.31.34
Grazie mille, mi hai fatto un grosso piacere.
Ciao.

Sergio Neddi
07-06-2006, 23.48.16
Per la cronaca i batch su XP si fanno in modo differente in quanto non c'Ŕ il comando choice (per˛ si pu˛ prendere in prestito quello di win98).

Su XP Ŕ possibile sfruttare il il comando set in modo da fargli richiedere all'utente una stringa che viene poi immessa in una variabile.
Si pu˛ poi testare il contenuto di questa variabile per eseguire le varie scelte del batch.

Faccio un esempio, ho creato un batch di nome prova.cmd.
Una volta lanciato questo richiede all'utente l'inserimento di S oppure N.
L'input finisce in una variabile di nome pippo (che fantasia) che viene poi testata da alcuni if per vedere se contiene S o N, sia in maiuscolo che minuscolo.
A video appare la risposta, se la stringa digitata non Ŕ ammessa riappare nuovamente la richiesta di input.

Ecco qui il batch:


@echo off
:richiesta
set /p pippo="Rispondi S o N "
if %pippo%==S (
echo.
echo hai risposto SI
goto ok
)
if %pippo%==s (
echo.
echo hai risposto SI
goto ok
)
if %pippo%==N (
echo.
echo hai risposto NO
goto ok
)
if %pippo%==n (
echo.
echo hai risposto NO
goto ok
)
rem risposta non valida
goto richiesta

:ok
rem cancella la variabile temporanea pippo
set %pippo%=