ESCOLHA pode funcionar bem, desde que você não esteja no XP, e o número máximo de escolhas é limitado.
Se o tamanho da lista for sempre menor que 10, você poderá criar dinamicamente a lista de chaves CHOICE. (Note que coloquei o ECHO antes do CD para poder testar):
@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%!
Se o tamanho da lista pode exceder 9, você pode predefinir uma lista de opções e usar uma substring com a contagem para limitá-las adequadamente:
@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%!
Se você precisar dar suporte ao XP ou se quiser uma lista irrestrita, poderá alternar usando SET / P. Eu incluí o código para verificar a entrada do usuário e fazer um loop se o valor não for válido.
@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%!