解决了
感谢马蒂亚斯·R·耶森的建议。
下午好,我正在编写一个脚本来检查是否安装了软件,如果安装了,我将提取它们的版本信息。它工作在它的基本形式,只是拉动信息,但它会抛出一个错误的任何东西没有安装。我试图将一些逻辑融入其中,这样它就会抛出特定的软件,而不是安装错误消息。下面是我试图使用的代码。通过这个脚本将所有软件的路径添加到$env:Path中。
编辑代码
通过将Test-Path更改为Get-Command并向两个Get-Command节添加-ErrorAction SilentlyContinue来解决问题。
$Env:Path += ";C:\Program Files (x86)\VMware\VMware Workstation\"
$Env:Path += ";C:\Program Files (x86)\VMware\VMware Remote Console\"
$Env:Path += ";C:\Program Files (x86)\VMware\esxcli\"
$Env:Path += ";C:\Program Files\VMware\VMware OVF Tool\"
$Env:Path += ";C:\Program Files (x86)\Microsoft\Edge\Application\"
$Env:Path += ";C:\Program Files\Mozilla Firefox\"
$apps = @("ovftool","vmrc","vmware","msedge","firefox")
ForEach ($app in $apps) {
If(Get-Command $app -ErrorAction SilentlyContinue){
(Get-Command $app -ErrorAction SilentlyContinue).FileVersionInfo|Select-Object ProductName, ProductVersion |Format-Table -AutoSize
}else{
Write-Output "$app is not installed"
}
}发布于 2021-05-18 18:11:03
您可以尝试使用GetExtenion
if ([IO.Path]::GetExtension($app) -eq ".exe")
{
# file has .exe extension
}https://stackoverflow.com/questions/67591505
复制相似问题