如何通过PowerShell测试Notepad ++是否安装?

时间:2016-03-23 09:29:20

标签: powershell notepad++

我想测试notepad ++是否通过powershell安装,如果已安装,我将用记事本++打开文本文件,否则使用记事本。

$textfile = "d:\fooBar.txt)"
if (<# notepad++ installed?#>
{
 notepad++ $textfile
}
notepad $textfile

我怎样才能做到这一点? 感谢

3 个答案:

答案 0 :(得分:1)

阅读this post,我曾经提到过以下内容。

# Get the Notepad++ registry item, if it exists (32bit)
$np = Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* |
Where-Object {$_.DisplayName -eq 'Notepad++'} |
Select-Object DisplayName,DisplayIcon

if($np -ne $null){
    # Launch based on DisplayIcon being notepad++.exe
    # You could manipulate this string or another registry entry for added robustness.
    & $np.DisplayIcon $textfile
}

答案 1 :(得分:0)

Equivalent of *Nix 'which' command in Powershell?

这应该对你有所帮助。在UNIX中, 命令显示程序的安装位置。 从那里,您可以检查返回的字符串是否为空。 祝你好运:)

答案 2 :(得分:0)

如果您可以采用默认路径,则只需检查.exe。

if ( $ENV:PROCESSOR_ARCHITECTURE -eq 'AMD64' ){
    $npp = "C:\Program Files (x86)\Notepad++\notepad++.exe"
} else {
    $npp = "C:\Program Files\Notepad++\notepad++.exe"
}

if ($npp){
    &$npp 'c:\folder\document.txt'
}