Да, это абсолютно возможно. Просто напишите три .bat файла. Первый должен выглядеть так:
@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
Второй и третий файл .bat в основном одинаковы, за исключением того, что они различаются по имени. Первый будет называться x86.bat, второй - ia64.bat, и они будут помещены в папку bin, которая находится над первым файлом bat. У вас будет это:
PATH\first.bat
PATH\bin\x86.bat
PATH\bin\ia64.bat
Содержимое второго и третьего файла .bat должно выглядеть так:
@set PATH=THE PATH YOU WANT
Вы можете создать ссылку на первый файл .bat, который будет иметь следующие настройки:
Цель:% comspec% / k "PATH \ first.bat" ОПЦИЯ | Где опция - x86 или ia64
Начало в: ПУТЬ | Где PATH - это путь к вашему first.bat
Сценарий - это упрощенный сценарий, который Microsoft использует для запуска правильной командной строки для своей среды Visual Studio. Вы можете просто расширить эти сценарии для N сред. Добавляя больше .bat файлов для разных сред и редактируя first.bat с большим количеством опций и операторов goto. Я надеюсь, что это само за себя.
И я надеюсь, что Microsoft не предъявляет мне иск за использование их сценария.
РЕДАКТИРОВАТЬ:
Ах, я думаю, что я вас немного не понял. Для 32-битной строки cmd ссылка должна быть создана как:
Цель:% windir% \ SysWoW64 \ cmd.exe "PATH \ first.bat" x86
EDIT2:
Попробуйте что-то вроде:
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%
показывает разные пути в зависимости от типа cmd.exe, из которого он запущен, ноwhere ssleay32.dll
в обоих типах cmd.exe (32-битный и 64-битный) не может найти эту DLL и отображаетINFO: Could not find files for the given pattern(s).
какие-либо идеи?