如果为true,则继续执行脚本

时间:2019-05-15 14:54:28

标签: powershell

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

我已经尝试过执行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”语句为true时,继续运行剩余的脚本,而当“ if”语句为false时,停止脚本并显示驱动程序名称和版本以类似于以下显示:

>
Product Name        : Quadro P2000
Video Driver Version: 391.03

1 个答案:

答案 0 :(得分:0)

我不理解您的$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*"}})     

}