CHOICE funktioniert einwandfrei, solange Sie nicht mit XP arbeiten und die maximale Anzahl der Auswahlmöglichkeiten begrenzt ist.
Wenn die Listengröße immer kleiner als 10 ist, können Sie die Liste der CHOICE-Schlüssel dynamisch erstellen. (Beachten Sie, dass ich ECHO vor die CD gestellt habe, damit ich es testen kann):
@echo off
setlocal enabledelayedexpansion
set folderlist=C:\TecsysDev\iTopiaControlPanel\trunk\jboss-6.1.0.Final\server\TecsysCP C:\TecsysDev\iTopiaControlPanel\trunk\jboss-6.1.0.Final\server\mast_main_dtw1i C:\TecsysDev\iTopiaControlPanel\trunk\jboss-6.1.0.Final\server\dev_main_dtw1o
set count=1
set "choice="
echo(
echo Please choose a folder:
echo(
for %%F in (%folderlist%) do (
echo !count!^) %%~F
set "choice=!choice!!count!"
set "option.!count!=%%F"
set /a count+=1
)
echo(
choice /c %choice% /m ">" /n
echo cd !option.%errorlevel%!
Wenn die Listengröße 9 überschreiten kann, können Sie eine Liste mit Auswahlmöglichkeiten vordefinieren und eine Teilzeichenfolge mit der Anzahl verwenden, um sie entsprechend einzuschränken:
@echo off
setlocal enabledelayedexpansion
set folderlist=C:\TecsysDev\iTopiaControlPanel\trunk\jboss-6.1.0.Final\server\TecsysCP C:\TecsysDev\iTopiaControlPanel\trunk\jboss-6.1.0.Final\server\mast_main_dtw1i C:\TecsysDev\iTopiaControlPanel\trunk\jboss-6.1.0.Final\server\dev_main_dtw1o C4 C5 C6 C7 C8 C9 C10 C11 C12
set count=0
set "choice=123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
echo(
echo Please choose a folder:
echo(
for %%F in (%folderlist%) do (
for %%N in (!count!) do echo !choice:~%%N,1!^) %%~F
set /a count+=1
set "option.!count!=%%F"
)
echo(
choice /c !choice:~0,%count%! /m ">" /n
echo cd !option.%errorlevel%!
Wenn Sie XP unterstützen müssen oder eine uneingeschränkte Liste wünschen, können Sie zu SET / P wechseln. Ich habe Code eingefügt, um die Eingabe des Benutzers zu überprüfen, und einen Loop zurück, wenn der Wert ungültig ist.
@echo off
setlocal enabledelayedexpansion
set folderlist=C:\TecsysDev\iTopiaControlPanel\trunk\jboss-6.1.0.Final\server\TecsysCP C:\TecsysDev\iTopiaControlPanel\trunk\jboss-6.1.0.Final\server\mast_main_dtw1i C:\TecsysDev\iTopiaControlPanel\trunk\jboss-6.1.0.Final\server\dev_main_dtw1o C4 C5 C6 C7 C8 C9 C10 C11 C12
:menu
set count=1
set "valid= "
echo(
echo Please choose a folder:
echo(
for %%F in (%folderlist%) do (
echo !count!^) %%~F
set "valid=!valid!!count! "
set "option.!count!=%%F"
set /a count+=1
)
echo(
set "choice=0"
set /p "choice=> "
if "!valid: %choice% =!" equ "!valid!" (
echo Invalid choice, please try again.
pause
goto menu
)
echo cd !option.%choice%!