Другая переменная окружения PATH для Windows на 64 бита и на 32 бита - действительно ли это возможно?

Действительно ли возможно иметь целый или часть PATH переменная среды, характерная для типа изображения рабочего процесса (32bit/64bit)? Когда я запускаю некоторое приложение из cmd.exe на 64 бита, я хотел бы иметь его, выбирают версию на 64 бита библиотеки OpenSSL, тогда как, когда я запускаю некоторое приложение из cmd.exe на 32 бита, я хотел бы иметь его, выбирают версию на 32 бита библиотеки OpenSSL.

ПРОДОЛЖИТЬ
where.exe не находит, что OpenSSL освобождает, когда %ProgramFiles переменная % используется в переменной окружения PATH

14
задан 20.03.2017, 12:17

2 ответа

Сделать %ProgramFiles% кому: %ProgramFiles(x86)% огибающая переменная, переключающаяся для работы на Вас:

Папки места с x32 и x64 версиями библиотеки OpenSSL в соответствующий %programfiles% и %ProgramFiles(x86)% каталоги и в PATH переменная среды, используйте ссылку на эти папки через %programfiles% переменная.

Таким образом, когда Вы работаете в x32-разрядной среде, Вашем PATH запись %programfiles%/OpenSSL/ будет автоматически разрешен к %ProgramFiles(x86)%/OpenSSL/ на диске.

9
ответ дан 07.12.2019, 11:18

Да это абсолютно возможно. Просто запишите трем .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, и они размещаются в папку, названную мусорным ведром, которое является выше первый 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

Запустите в: СОЕДИНИТЕ КАНАЛОМ |, Где ПУТЕМ является ПУТЬ к Вашему first.bat

Сценарий является упрощенным сценарием использование Microsoft для запуска правильной командной строки для их среды Visual Studio. Вы могли просто развернуть это сценарии до сред N. Путем добавления большего количества .bat файлов для различных сред и путем редактирования first.bat с большим количеством опций и операторов перехода. Я надеюсь, что это сам объяснение.

И я надеюсь, что 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
5
ответ дан 07.12.2019, 11:18

Теги

Похожие вопросы