web-dev-qa-db-ja.com

Visual Studioインストールパスをバッチファイルで取得する方法

通常、パスはC:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\のようなものです。

Visual Studioから、$(VCInstallDir)$を使用してこのパスを取得できます。

Q: But in a batch file, how to get this path?

バッチファイルで環境変数%VS100COMNTOOLS%を使用して、C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\である同様のパスを取得できることを知っています。

ソリューションはVSのバージョンに依存しないようにする必要があります。

9
user565739

レジストリを使用して、VisualStudioインストールディレクトリへのパスを見つけることもできます。インストールされる可能性のあるさまざまなバージョンのVS(10.0または11.0など)を処理するには、ロジックを追加する必要があります。

@ECHO OFF
setlocal ENABLEEXTENSIONS
; 32-bit system:
set KEY_NAME="SOFTWARE\Microsoft\VisualStudio\9.0\Setup\VS"
; 64-bit system:
; set KEY_NAME="SOFTWARE\WOW6432Node\Microsoft\VisualStudio\9.0\Setup\VS"
set VALUE_NAME=ProductDir

FOR /F "usebackq skip=4 tokens=1-3" %%A IN (`REG QUERY %KEY_NAME% /v %VALUE_NAME% 2^>nul`) DO (
    set ValueValue=%%C
)

if defined ValueName (
    @echo Registry Value = %ValueValue%
) else (
    @echo %KEY_NAME%\%VALUE_NAME% not found.
)
pause
5
Adam

この質問にはかなり遅れましたが、MSVCディレクトリを取得する簡単な方法を見つけました。トリックは、%VS100COMNTOOLS%変数(またはビジュアルスタジオのバージョン、ここでは10010.0)を使用することです。これは、..\VC\vcvarsall.batバッチファイルを呼び出さなくても存在することが保証されています。

%VCInstallDir%変数は、vcvarsall.batが呼び出されるまで空であるため、これに該当しますが、フルパスがわからない場合はファイルを呼び出すことができません。

一方、%VS100COMNTOOLS%は存在し、次のようなものを返します。

c:\Program Files\Microsoft Visual Visual Studio 10.0\Common7\Tools

次に、最後の文字の単純なカットオフは良いようです:

echo "%VS100COMNTOOLS:~0,-14%VC\"
3
user514395

VCInstallDirは、VisualStudioのバージョンに依存しない環境変数のようです。

echo %VCInstallDir%

これは、バッチファイルで使用できます。

1
Vilhelm H.

VSバンドル(公式)の一部である vswhere ユーティリティを使用しますが、MSVCとは別に使用することもできます。

> vswhere.exe -latest -property installationPath
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community

ここ 詳細が見つかるかもしれません

これと同様の方法を使用して、特定のコマンドシェルのビットレベルを検出できます。

IF "%programfiles%"=="C:\Program Files" (
  ECHO This is a 64-bit cmd.exe Shell.
) ELSE (
  ECHO This is a 32-bit cmd.exe Shell.
)

次に、それを使用してVisualStudioの場所を特定できます。それは本当にあなたがしていることに依存します。次のような方法を使用することもできます。

SET "VS_LOC=%programfiles%\Visual Studio\bin\program.exe"
IF EXIST "%VS_LOC%" (
  ECHO Found a visual studio installation.
) ELSE (
  ECHO Could not find the visual studio install at %VS_LOC%.
)

私はこれを行うためのさまざまな方法について何度も続けることができました。状況によってはあなた次第です。

0
djangofan