質問: 32ビットと64ビットのwindowsで異なるpath環境変数-可能ですか? 実行中のプロセスのイメージのタイプ(32ビット/ 64ビット)に固有のpath環境変数の全体または一部を持つことは可能ですか? 64ビットcmd.exe内からアプリを実行するときは、64ビットバージョンのopensslライブラリを選択させたいのに対し、32ビットcmd.exe内からアプリを実行させるときは、32ビットバージョンのopensslライブラリを選択させます。フォローアップ %programfiles%変数がpath環境変数で使用されている場合、where.exeはopensslライブラリを検出しません
回答: はい、それは絶対に可能です。 3つの.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 2番目と3番目の.batファイルは、名前が異なることを除いて、基本的に同じです。 1つ目はx86.bat、2つ目はia64.batと呼ばれ、最初のbatファイルの上にあるbinと呼ばれるフォルダーに配置されます。あなたはこれを持つでしょう:path\first.bat path\bin\x86.bat path\bin\ia64.bat 2番目と3番目の.batファイルの内容は次のようになります。@set path=the path you want 次の設定を持つ最初の.batファイルへのリンクを作成できます。ターゲット:%comspec%/ k "path\first.bat" option | optionはx86またはia64です。開始:path | pathは、first.batへのパスです。このスクリプトは、microsoftがvisual studio環境に適したコマンドラインを起動するために使用する簡略化されたスクリプトです。このスクリプトをn環境に単純に拡張できます。さまざまな環境用の.batファイルをさらに追加し、さらに多くのオプションとgotoステートメントでfirst.batを編集します。私はそれが自己説明であることを望みます。そして、マイクロソフトがスクリプトを使用したことで私を訴えないことを願っています。編集:ああ、少し誤解したと思います。 32ビットcmd行の場合、リンクは次のように作成する必要があります。ターゲット:%windir%\ syswow64\cmd.exe "path\first.bat" x86edit2:次のようなものを試してください: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