如何在Windows中使用命令提示符获取Chrome版本

33

在Windows的命令提示符中,是否有可能通过命令获取安装的Chrome版本?

尝试过:

 "C:\Program Files\Google\Chrome\Application\chrome.exe" -version
 "C:\Program Files\Google\Chrome\Application\chrome.exe" --version
 "C:\Program Files\Google\Chrome\Application\chrome.exe" -product-version
 "C:\Program Files\Google\Chrome\Application\chrome.exe" --product-version
当我这样做时,会打开一个浏览器实例。我应该使用哪个标志才能获取版本号?
我正在使用Windows 7。Google Chrome版本是67.0.3396.87。
先感谢您。
7个回答

33
截至今天, user4851仍在工作. 我查看了他的链接bug报告,提出的解决方法对我不再奏效。无论如何,在我的目录中有一个新的hkey,允许您查询chrome版本,而不必知道实际的安装位置。
reg query "HKEY_CURRENT_USER\Software\Google\Chrome\BLBeacon" /v version

注意,如果安装的 Chrome 版本不同,第一次运行后此代码将返回正确版本! - Sergey Nudnov

26
这方面已经有一个错误报告:https://bugs.chromium.org/p/chromium/issues/detail?id=158372

原始回答(但请参见下面的更新)

对我有用的是

wmic datafile where name="C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" get Version /value

它会打印

Version=67.0.3396.99

周围有一些空白行。

在错误评论中还有一些其他建议,比如查询注册表。

更新

来自Chromium团队的某人在错误评论线程中发布了这个“完全不受支持的”批处理文件:

@ECHO OFF

:: Look for machine-wide Chrome installs (stable, Beta, and Dev).
:: Get the name, running version (if an update is pending relaunch), and
:: installed version of each.
FOR %%A IN (
    {8A69D345-D564-463c-AFF1-A69D9E530F96},
    {8237E44A-0054-442C-B6B6-EA0509993955},
    {401C381F-E0DE-4B85-8BD8-3F3F14FBDA57}) DO (
  reg query HKLM\Software\Google\Update\Clients\%%A /v name /reg:32 2> NUL
  reg query HKLM\Software\Google\Update\Clients\%%A /v opv /reg:32 2> NUL
  reg query HKLM\Software\Google\Update\Clients\%%A /v pv /reg:32 2> NUL
)

:: Look for Chrome installs in the current user's %LOCALAPPDATA% directory
:: (stable, Beta, Dev, and canary).
:: Get the name, running version (if an update is pending relaunch), and
:: installed version of each.
FOR %%A IN (
    {8A69D345-D564-463c-AFF1-A69D9E530F96},
    {8237E44A-0054-442C-B6B6-EA0509993955},
    {401C381F-E0DE-4B85-8BD8-3F3F14FBDA57},
    {4ea16ac7-fd5a-47c3-875b-dbf4a2008c20}) DO (
  reg query HKCU\Software\Google\Update\Clients\%%A /v name /reg:32 2> NUL
  reg query HKCU\Software\Google\Update\Clients\%%A /v opv /reg:32 2> NUL
  reg query HKCU\Software\Google\Update\Clients\%%A /v pv /reg:32 2> NUL
)

就目前而言,这可能被视为正确的方法。


1
非常感谢这个可怕的解决方法。我讨厌Chrome。 - cowlinator

19

我尝试了Kilian的答案,但在我的情况下,我通过服务远程运行它来对付一堆机器,所以我认为HKEY_CURRENT_USER无效:

ERROR: The system was unable to find the specified registry key or value.
假设您知道exe文件的位置,您可以尝试采用不同的方法并读取exe文件的版本属性:
# Powershell
# Older versions install to the 32-bit directory
(Get-Item "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe").VersionInfo

# Newer versions use the 64-bit directory
(Get-Item "C:\Program Files\Google\Chrome\Application\chrome.exe").VersionInfo

ProductVersion   FileVersion      FileName
--------------   -----------      --------
76.0.3809.100    76.0.3809.100    C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

要在cmd.exe中使用它或通过任何子进程调用(如Python、Go os/exec等),你可以执行以下操作:

要在cmd.exe中使用它或通过任何子进程调用(如Python、Go os/exec等),你可以执行以下操作:

powershell -command "&{(Get-Item 'Absolute\path\to\chrome.exe').VersionInfo.ProductVersion}"

1
我在我的情况下不得不删除(x86)部分。 - Yehor Androsov
1
这是我个人认为比被接受的答案更好,因为它是唯一适用于任何Chrome或Chromium二进制文件的方法,即使它不是“已安装的”Chrome。 - Coderer
2
@lenka_cizkova 这是一个PowerShell脚本,当我在cmd.exe中使用它时,遇到了你提到的错误。powershell -command "&{(Get-Item "Absolute\path\to\chrome.exe").VersionInfo.ProductVersion}" 在命令提示符下对我有效。 - Phani Rithvij
@PhaniRithvij 很好的观点!(这个重要的信息在答案中缺失了...) - Lenka Čížková
1
我不得不在'Absolute\path\to\chrome.exe'周围使用单引号,否则我会得到Get-Item:找不到接受参数'Files\Google\Chrome...'的位置参数的错误提示。 - Martin Dorey
显示剩余3条评论

4

仅使用命令行工具

dir /B/AD "C:\Program Files (x86)\Google\Chrome\Application\"|findstr /R /C:"^[0-9].*\..*[0-9]$"
78.0.3904.97

只列出Chrome应用程序文件夹中的目录/AD,并以短格式/B呈现。

findstr /R /C:"..."将以下正则表达式应用于目录列表。 正则表达式匹配以数字开头^[0-9]并以数字结尾[0-9]$的每个文件夹名称。 在第一个和最后一个数字之间,允许任何字符.*,但至少应出现一个点\.


2
抱歉,但这种方法完全不可靠。 - Massimo
即使这样也失败了: `start chrome http://chrome://version' - Patrick Burwell

3

我能够使用rust kitty的解决方案,而无需在路径中安装chrome,方法如下:

  • 从PowerShell运行:
(Get-Command C:\Program Files (x86)\Google\Chrome\Application\chrome.exe').Version.ToString()
  • 从命令行:
powershell -command "(Get-Command C:\Program Files (x86)\Google\Chrome\Application\chrome.exe').Version.ToString()"

3
user1425134的解决方案对我有用,但如果您可以假设Chrome是%PATH%的一部分(如果您可以打开命令提示符并键入chrome来启动浏览器),则可以大大简化操作。

从PowerShell中,您可以键入(Get-Command "chrome").Version.ToString()

或者从cmd.exe中,您可以键入powershell -c "(Get-Command "chrome").Version.ToString()"

(同样适用于Chromium,只需替换命令名称)


0

通过 Powershell 命令是 -

Get-WmiObject -Class Win32_Product | ? {$_.name -eq 'Google Chrome'} |select Name,Version

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