我想测试notepad ++是否通过powershell安装,如果已安装,我将用记事本++打开文本文件,否则使用记事本。
$textfile = "d:\fooBar.txt)"
if (<# notepad++ installed?#>
{
notepad++ $textfile
}
notepad $textfile
我怎样才能做到这一点? 感谢
答案 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'
}