4

我想获取机器上安装的所有 Visual Studio 版本的安装目录(将文件复制到 Xml/Schemas 目录中)

最好的方法是从注册表中读取。在\HKLM\Software\Wow6432Node\Microsoft\Visual Studio,所有版本都按版本号列出:10.0、11.0、12.0。但是,9.0 和 8.0 和 7.1 仍然存在,即使它们没有安装。所以我不能把它们都抓起来。我需要的是过滤所有具有 InstallDir 属性的键。

我知道我必须结合 Get-ChildItem 和 Get-ItemProperty 但我不确定如何。

如何为我的要求编写 Powershell 命令?

4

1 回答 1

7

这将在没有该属性的键上产生错误 - 但您可以放心地忽略这些。

cd HKLM:\SOFTWARE\Wow6432Node\Microsoft\VisualStudio
$paths = dir | gp -Name InstallDir | select InstallDir

查看安装了 studio 2010 和 2012 的计算机上的 $paths 变量的输出:

InstallDir
----------
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\

神奇的是Get-ItemProperty(gp) 将接受来自管道的默认参数,以便您可以链接Get-ChildItem(dir) 的输出以自动检查每个子键。( Select-Objectselect) cmdlet 只是简单地消除了 PS* 属性并只为您提供原始路径:

于 2013-09-11T15:13:18.977 回答