Sim, é absolutamente possível. Basta escrever três arquivos .bat. O primeiro deve ficar assim:
@echo off
if "%1" == "" goto x86
if not "%2" == "" goto usage
if /i %1 == x86 goto x86
if /i %1 == ia64 goto ia64
goto usage
:x86
if not exist "%~dp0bin\x86.bat" goto missing
call "%~dp0bin\x86.bat"
goto :eof
:ia64
if not exist "%~dp0bin\ia64.bat" goto missing
call "%~dp0bin\ia64.bat"
goto :eof
:usage
echo Error in script usage. The correct usage is:
echo %0 [option]
echo where [option] is: x86 ^| ia64
echo:
echo For example:
echo %0 x86
goto :eof
:missing
echo The specified configuration type is missing. The tools for the
echo configuration might not be installed.
goto :eof
O segundo e o terceiro arquivo .bat são basicamente os mesmos, exceto que diferem em seus nomes. O primeiro será chamado x86.bat, o segundo ia64.bat, e eles serão colocados em uma pasta chamada bin, que está acima do primeiro arquivo bat. Você terá isso:
PATH\first.bat
PATH\bin\x86.bat
PATH\bin\ia64.bat
O conteúdo do segundo e terceiro arquivo .bat deve ficar assim:
@set PATH=THE PATH YOU WANT
Você pode criar um link para o primeiro arquivo .bat, que terá as seguintes configurações:
Alvo:% comspec% / k "PATH \ first.bat" OPÇÃO | Onde OPTION é x86 ou ia64
Início em: CAMINHO | Onde PATH é o caminho para o seu first.bat
O script é o script simplificado que a Microsoft usa para iniciar a linha de comando correta para o ambiente do Visual Studio. Você pode simplesmente expandir esses scripts para N ambientes. Adicionando mais arquivos .bat para diferentes ambientes e editando o first.bat com mais opções e instruções goto. Espero que seja auto-explicativo.
E espero que a Microsoft não me processe por usar seu script.
EDITAR:
Ah, eu acho que te entendi um pouco. Para a linha cmd de 32 bits, o link deve ser criado como:
Destino:% windir% \ SysWoW64 \ cmd.exe "PATH \ first.bat" x86
EDIT2:
Tente algo como:
if "%ProgramFiles%" == "%ProgramFiles(x86)%" goto x64_PATH
if "%ProgramFiles%" == "%ProgramW6432%" goto x86_PATH
:x64_PATH
@set PATH=YOUR 64 bit PATH
SOME_PATH\your64BitApp.exe
goto :eof
:x86_PATH
@set PATH=YOUR 32bit PATH
SOME_PATH\your32BitApp.exe
goto :eof
echo %programfiles%
mostra um caminho diferente, dependendo do tipo de cmd.exe do qual é executado, maswhere ssleay32.dll
nos dois tipos de cmd.exe (32 bits e 64 bits) não é possível encontrar essa dll e exibeINFO: Could not find files for the given pattern(s).
Alguma idéia?