使用cmd.exe检测程序是否安装及其位置

7

Windows有一个名为start.exe的程序,它以某种方式知道如何通过它们的名称打开程序,比如“firefox”。

在cmd.exe中键入start firefox会打开firefox(假设已安装)。 是否有类似的命令可以启动并返回文件路径而非启动应用程序?

也可以接受任何类似但是正式的解决方案。

更新: 其他答案建议使用where命令,对于像ping这样在系统目录中的程序有效,但不像start那样找到firefox。

2个回答

7

看一下这个注册表键。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

在其中,您会发现与Firefox类似的内容。
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe]
@="C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"
"Path"="C:\\Program Files (x86)\\Mozilla Firefox"

这里是从PowerShell读取值的代码段。使用reg.exe也可以在批处理文件中完成同样的操作。

$Firepath = get-item -path 'registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe'
$Firepath.GetValue('')

我搜索了一段时间,但从未找到这些关键字!非常感谢。这正是我要找的内容。 - Nowayz
提到的reg.exe命令是reg.exe query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe" /v Path,需要进行额外的输出解析。 - Burkart

0

获取应用程序名称、版本号的命令为:wmic product get name,version /format:csv > C:\testappu\Computername%.csv


你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接