首页 > 解决方案 > 如果为真,请继续执行脚本

问题描述

尝试对现有的测试实验室机器配置脚本执行 if/else 语句。基本上我想搜索一个确切的文件路径,如果是真的继续脚本,如果是假的,停止脚本并显示驱动程序名称和版本。

我已经尝试使用 continue 语句,但 powershell 不喜欢它

Function Namespace_Check
{    Write-Host "Checking available namepace" -ForegroundColor Green
     Get-CimInstance -namespace "root\cimv2" -ClassName __NAMESPACE
     $path = "root\cimv2\NV"
     Write-Host "Complete" -ForegroundColor Green

     if 
        ($path -match '*NV*' ){continue}

     else
        {Get-WmiObject Win32_PnPSignedDriver| select devicename, driverversion | where {$_.devicename -like "*nvidia*"}}     

}

我想当“if”语句为真时,继续运行剩余的脚本,当“if”语句为假时,停止脚本并显示驱动程序名称和版本以显示类似于:

Product Name        : Quadro P2000
Video Driver Version: 391.03

标签: powershell

解决方案


我不明白你的$path变量,如果你的目的是检查命名空间是否包含“NV”,你可以这样做:

if ((Get-CimInstance -namespace "root\cimv2" -ClassName __NAMESPACE).Name -match 'NV')
{
return
}

else {
return (Get-WmiObject Win32_PnPSignedDriver| select devicename, driverversion | where {$_.devicename -like "*nvidia*"})
}

无论如何使用您的代码,您可以将其更新为:

Function Namespace_Check
{    Write-Host "Checking available namepace" -ForegroundColor Green
     Get-CimInstance -namespace "root\cimv2" -ClassName __NAMESPACE
     $path = "root\cimv2\NV"
     Write-Host "Complete" -ForegroundColor Green

     if 
        ($path -match '*NV*' ){return}

     else
        { return (Get-WmiObject Win32_PnPSignedDriver| select devicename, driverversion | where {$_.devicename -like "*nvidia*"}})     

}

推荐阅读