Так, це абсолютно можливо. Просто напишіть три файли .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" ВАРІАНТ | Де OPTION - x86 або ia64
Початок: PATH | Там, де 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).
будь-які ідеї?