Sì, è assolutamente possibile. Basta scrivere tre file .bat. Il primo dovrebbe apparire così:
@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
Il secondo e il terzo file .bat sono sostanzialmente gli stessi, tranne per il fatto che differiscono nel loro nome. Il primo si chiamerà x86.bat il secondo ia64.bat e saranno collocati in una cartella chiamata bin che si trova sopra il primo file bat. Avrai questo:
PATH\first.bat
PATH\bin\x86.bat
PATH\bin\ia64.bat
Il contenuto del secondo e terzo file .bat dovrebbe essere simile al seguente:
@set PATH=THE PATH YOU WANT
È possibile creare un collegamento al primo file .bat che avrà le seguenti impostazioni:
Target:% comspec% / k OPZIONE "PATH \ first.bat" | Dove OPTION è x86 o ia64
Inizia in: PERCORSO | Dove PATH è il PATH per il tuo first.bat
Lo script è lo script semplificato che Microsoft utilizza per avviare la riga di comando corretta per il loro ambiente Visual Studio. Potresti semplicemente espandere questi script in N ambienti. Aggiungendo più file .bat per ambienti diversi e modificando first.bat con più opzioni e istruzioni goto. Spero sia autoesplicativo.
E spero che Microsoft non mi faccia causa per aver usato la sua sceneggiatura.
MODIFICARE:
Ah, penso di averti frainteso un po '. Per la linea cmd a 32 bit, il collegamento deve essere creato come:
Target:% windir% \ SysWoW64 \ cmd.exe "PATH \ first.bat" x86
EDIT2:
Prova qualcosa del tipo:
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 un percorso diverso a seconda del tipo di cmd.exe da cui è eseguito mawhere ssleay32.dll
in entrambi i tipi di cmd.exe (32 bit e 64 bit) non è possibile trovare questa dll e visualizzaINFO: Could not find files for the given pattern(s).
idee?