在Powershell中检查当前安装的Notepad++版本

问题描述 投票:0回答:5

我需要知道当前安装的 Notepad++ 版本以获取自动更新脚本。有谁知道我如何在 Powershell 中获取它?也许有一个注册表项?

notepad++ silent-installer
5个回答
1
投票

以下命令

(Get-Item "C:\Program Files\Notepad++\notepad++.exe").VersionInfo.FileVersion
返回
7.88

这应该足够了。


1
投票

您可以添加到 @Mohammed Shabeer kp 答案,并将其与我的要点结合起来,在您的系统上静默安装 Notepad++。我将致力于将注册表查询添加到脚本中,以检查是否首先安装了 Notepad++。这样我们就不会下载不必要的文件。

安装NotepadPlusPlus.ps1


0
投票

如果您使用的是Windows 10,您可以右键单击它并选择属性,然后单击详细信息。您可以找到任何应用程序的当前版本


0
投票

可以使用

Get-ItemProperty
获取全部属性,然后输出版本 从财产清单中。希望以下内容对您有所帮助。

$w64=Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | where-Object DisplayName -like 'NotePad++*'
$w32=Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*  | where-Object DisplayName -like 'NotePad++*'

if ($w64) {
     write-Host $w64.DisplayVersion 
} elseif ($w32) {
     write-Host $w32.DisplayVersion
} else {
     Write-Output "No Version Found"
}


0
投票

从.exe文件获取版本信息

请注意,虽然 Caleb 上面建议的这个命令:

(Get-Item "C:\Program Files\Notepad++\notepad++.exe").VersionInfo.FileVersion
确实有效,但似乎至少对于某些旧版本的 Notepad++ 来说存在一些错误。我碰巧用记事本版本 8.3.2 尝试了这个命令,它给了我 8.32 的输出(而不是 8.3.2)。当然,这意味着在进行版本比较时,您的结果在很多情况下都是不正确的(例如,当将 8.6.2 与 8.32 进行比较时,后者更大,而当将 8.6.2 与正确的 8.3.2 进行比较时,前者更大)。

从注册表获取版本信息

所以我检查了注册表,这里看起来更可靠: 截至撰写本文时(2024 年 2 月),Notepad++ 32 位和 64 位版本都有固定的注册表路径,您可以在其中找到该软件当前安装的版本:

32 位:
“HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Notepad++”--> 属性“DisplayVersion”

64 位:
“HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Notepad++” --> 属性 DisplayVersion

您可以使用 PowerShell 直接读取此内容(无需提升提示符),代码如下(示例为 64 位版本,只需将路径调整为 32 位):

(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Notepad++").DisplayVersion

如果您需要的不是字符串,而是版本对象(例如,用于将已安装版本与当前可用版本进行比较),只需将字符串转换为版本对象,如下所示:

[version](Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Notepad++").DisplayVersion
© www.soinside.com 2019 - 2024. All rights reserved.