从批处理检查 Visual Studio Shell 安装

Posted

技术标签:

【中文标题】从批处理检查 Visual Studio Shell 安装【英文标题】:Check Visual Studio Shell Installation from Batch 【发布时间】:2012-12-14 14:37:23 【问题描述】:

我们如何通过批处理脚本检查是否安装了 Visual Studio Shell 以及安装了哪个版本?

我知道我们可以在

下检查文件/文件夹是否存在
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE

但我正在寻找更优雅和通用的解决方案。

有什么帮助吗?

更新为接受的答案:

您的回答很优雅,可以完成任务。由于我专门检查某些版本,因此我正在使用(检查您提供的链接后):

@echo off
reg query "HKEY_CLASSES_ROOT\VisualStudio.DTE.10.0" >> nul 2>&1
if %ERRORLEVEL% NEQ 0 ( echo VS 2010 not installed ) else ( echo VS 2010 installed. )
reg query "HKEY_CLASSES_ROOT\VisualStudio.DTE.11.0" >> nul 2>&1
if %ERRORLEVEL% NEQ 0 ( echo VS 2012 not installed ) else ( echo VS 2012 installed. ) 

【问题讨论】:

你想知道什么?版本号还是版本名称?即 10 或 express/pro 等。 其中一个或两个都可以。 感谢您的回复,仅供将来参考,请在您的问题中添加任何更新并带有明确的标题(请参阅我的编辑),而不是编辑解决方案,这样更有意义。很高兴看到你有 reg query 工作。 【参考方案1】:
@echo off
for /d %%a in ("%programfiles%\Microsoft Visual Studio*") do (
for /f "tokens=3 delims=\" %%x in ("%%a") do echo %%x
)
pause >nul

如果您需要更多详细信息,可以查询 plenty of reg keys 以获取更多信息,但从键和值中提取您想要的数据会更加困难。

注意:如果您在 x64 上运行,那么您可能需要添加对 %systemdrive%\Program Files (x86) 的检查,具体取决于 VS 的安装位置。

【讨论】:

@Rob 感谢您在编辑时通知我,我已将 OP 的回复添加到他们的问题中,以便将来的读者使用。

以上是关于从批处理检查 Visual Studio Shell 安装的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2012 中的可用替代列表

Visual Studio 数据库项目:包括对所有对象的“如果存在”检查

Visual Studio 2015 C#从昨天开始运行前自动构建

在Visual Studio中调试时,如何检查有关进程令牌的详细信息?

在 Visual Studio 中检查内存转储时匿名命名空间中的符号

工具,Visual Studio 设置来检查未初始化的类成员