Oui, c'est absolument possible. Écrivez simplement trois fichiers .bat. Le premier devrait ressembler à ceci:
@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
Le deuxième et le troisième fichier .bat sont fondamentalement les mêmes, sauf qu'ils diffèrent par leur nom. Le premier sera appelé x86.bat le second ia64.bat et ils sont placés dans un dossier appelé bin qui se trouve au-dessus du premier fichier bat. Vous aurez ceci:
PATH\first.bat
PATH\bin\x86.bat
PATH\bin\ia64.bat
Le contenu des deuxième et troisième fichiers .bat devrait ressembler à ceci:
@set PATH=THE PATH YOU WANT
Vous pouvez créer un lien vers le premier fichier .bat qui aura les paramètres suivants:
Cible:% comspec% / k OPTION "PATH \ first.bat" | Où OPTION est x86 ou ia64
Début dans: CHEMIN | Où PATH est le CHEMIN vers votre first.bat
Le script est le script simplifié que Microsoft utilise pour démarrer la bonne ligne de commande pour leur environnement Visual Studio. Vous pouvez simplement étendre ces scripts à N environnements. En ajoutant plus de fichiers .bat pour différents environnements et en éditant le premier.bat avec plus d'options et d'instructions goto. J'espère que ça s'explique.
Et j'espère que Microsoft ne me poursuivra pas pour avoir utilisé leur script.
ÉDITER:
Ah je pense que je vous ai un peu mal compris. Pour la ligne cmd 32 bits, le lien doit être créé comme suit:
Cible:% windir% \ SysWoW64 \ cmd.exe "PATH \ first.bat" x86
EDIT2:
Essayez quelque chose comme:
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%
affiche un chemin différent selon le type de cmd.exe à partir duquel il est exécuté, maiswhere ssleay32.dll
dans les deux types de cmd.exe (32 bits et 64 bits), vous ne pouvez pas trouver cette DLL et affiche desINFO: Could not find files for the given pattern(s).
idées?