बैच फ़ाइल में Visual Studio स्थापना पथ कैसे प्राप्त करें


9

आम तौर पर, रास्ता कुछ ऐसा है C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\

विजुअल स्टूडियो से, कोई भी $(VCInstallDir)$इस पथ को प्राप्त करने के लिए उपयोग कर सकता है।

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

मुझे पता है कि एक %VS100COMNTOOLS%समान पथ प्राप्त करने के लिए बैच फ़ाइल में पर्यावरण चर का उपयोग किया जा सकता है C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\

समाधान वीएस के संस्करण पर निर्भर नहीं होना चाहिए।

जवाबों:


5

आप Visual Studio स्थापित निर्देशिका के लिए पथ खोजने के लिए रजिस्ट्री का उपयोग भी कर सकते हैं। आपको वीएस के विभिन्न संस्करणों को संभालने के लिए अतिरिक्त तर्क जोड़ना होगा जो कि 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

बहुत यकीन है कि यह स्थापित पथ में रिक्त स्थान के साथ मुद्दों होगा। stackoverflow.com/questions/22352793/…
क्रेग रिंगर

3

इस सवाल के लिए देर से रास्ता है, लेकिन मैं MSVC निर्देशिका पाने के लिए एक आसान तरीका मिल गया है। चाल %VS100COMNTOOLS%चर (या आपके दृश्य स्टूडियो के संस्करण, यहां 100है 10.0) का उपयोग करना है, जिसे ..\VC\vcvarsall.batबैच फ़ाइल को कॉल किए बिना भी मौजूद होने की गारंटी है ।

%VCInstallDir%चर इसे तब तक गिरता है जब तक इसे खाली नहीं vcvarsall.batकहा जाता है, लेकिन अगर हम पूर्ण पथ नहीं जानते हैं तो हम फ़ाइल को कॉल नहीं कर सकते हैं।

%VS100COMNTOOLS%दूसरी ओर मौजूद है और की तरह कुछ देता है:

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

फिर, पिछले वर्णों का केवल एक कट-ऑफ अच्छा लगता है:

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

क्या उपयोगकर्ता द्वारा किसी भी समय MSVC स्थापित करने के बाद यह चर उपलब्ध है? मैं एक सुविधाजनक तरीका पता लगाने की कोशिश कर रहा हूं ताकि एक vcvarsall.batसंकलक और लिंकर के लिए और अधिक विवरण और पथ प्राप्त करने के लिए MSVC स्थापना को देखने के लिए कहा जा सके ।
इंग्वी फीनिक्स

1

ऐसा लगता है कि VCInstallDir एक वातावरण चर है जो विज़ुअल स्टूडियो के संस्करण पर स्वतंत्र है।

echo %VCInstallDir%

जिसका उपयोग बैच फ़ाइल में किया जा सकता है।


1

Vswhere उपयोगिता का उपयोग करें जो VS बंडल (आधिकारिक तौर पर) का एक हिस्सा है, लेकिन MSVC के अलावा भी इस्तेमाल किया जा सकता है।

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

यहां आपको अधिक जानकारी मिल सकती है


प्रलेखन के गैर-अंग्रेजी संस्करण के लिए लिंक क्यों है?
रामहुंड

0

आप अपने विशेष कमांड शेल के बिट स्तर का पता लगाने के लिए इसके समान एक विधि का उपयोग कर सकते हैं:

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

फिर, आप इसका उपयोग करके यह पता लगा सकते हैं कि विज़ुअल स्टूडियो कहाँ स्थित है। यह वास्तव में आप क्या कर रहे हैं पर निर्भर करता है। आप इस तरह से एक विधि का उपयोग कर सकते हैं:

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%.
)

मैं ऐसा करने के विभिन्न तरीकों के बारे में और आगे बढ़ सकता हूं। यह आपकी स्थिति पर निर्भर करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.