PDA

View Full Version : [BATCH] - Problemi con "Choice"


Enecape
11-12-2005, 21:00
ciao a tutti!

ho un problema nel creare uno script .bat
quando vado nel prompt dei comandi di dos in Xp pro, e eseguo il mio file batch, nel quale ho inserito un'istruzione choice, il sistema mi da questo errore: "choice" non è riconosciuto come un programma esterno o interno, un programma eseguibile o un file batch.
quale può essere il problema di questo errore? a me sembra di aver scritto tutto giusto e di non aver fatto errori di sintassi, magari faccio errori strutturali... cmq questo è il mio script:

@echo off
@javac E:\Documenti\p_java\%1.java
echo.
echo ---------------------------
echo / Compilazione completata /
echo ---------------------------
echo.
choice /c:gs /n /t5 /dg /m Go or Stop? [g,s]
If errorlevel 2 goto goo
If errorlevel 1 goto stopp
:goo
echo Premere un tasto per avviare "%1.class"...
@pause >null
cls
@java %1
echo.
echo --------------------------------------
echo / Esecuzione del programma terminata /
echo --------------------------------------
echo.
:stopp
echo Premere un tasto per uscire...
@pause >null
@del null

grazie dell'aiuto a tutti!!!
ciao ciao

andbin
11-12-2005, 21:06
Choice, a partire dalla versione 6 del MS-DOS in cui apparve, non era un comando interno alla shell, ma un eseguibile a parte. Nelle ultime versioni di Windows (che io sappia almeno il 2000 e XP) non è più disponibile.

Enecape
11-12-2005, 21:13
accidenti...
quindi come potrei fare per fare una cosa del genere?
cioè una specie di menù?

DigitalKiller
11-12-2005, 21:23
Sotto windows 2000/XP al posto del comando choice devi utilizzare il set in questo modo

ECHO 1. Comando1
ECHO 2. Comando2
ECHO 3. Comando3
....
set scelta=
set /p scelta=Scegliere un numero.
if '%scelta%'=='1' goto Comando1
if '%scelta%'=='2' goto Comando2
if '%scelta%'=='3' goto Comando3

Enecape
11-12-2005, 21:26
cioè? come funzionerebbe set?
è la prima volta che mi addentro nel creare file batch... quindi vi prego datemi qualche info in più :help: ... grazie ;)

Enecape
11-12-2005, 21:44
Grazieee!!
l'ho inserito e funziona...
però avrei una domanda... cosa significa /p dopo set?
e invece
set scelta=
cosa fa questo comando?

grazie ancora....
Ps. non c'è una pagina web con tutti questo comandi?
ne ho trovata una sul sito di microsoft, ma set non c'è... e c'è ancora choice... però per win 2003 server.

andbin
12-12-2005, 09:09
set scelta=

cosa fa questo comando?
Elimina la variabile di nome "scelta".

Puoi fare SET /? dal prompt dei comandi, che ti mostra una spiegazione abbastanza lunga sul comando set.