powershell - 如果为真,请继续执行脚本
问题描述
尝试对现有的测试实验室机器配置脚本执行 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
解决方案
我不明白你的$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*"}})
}
推荐阅读
- javascript - 非法 base64 字符
- r - 如何计算从列表中采样所有样本的概率?
- reactjs - Reactjs 没有更新 product_number 的新值
- vim - 将复制的内容从 vim 粘贴到 IDE 会插入一个新行
- oracle - ORA-01652: 无法在表空间 TEMP 中将临时段扩展 128
- html - Angular 7.1.4 HTML 避免复制粘贴重组
- sql - Postgresql 从日期数组之间的日期范围中选择
- python-3.x - 缓慢缩放矩形(pygame)
- ios - 如何对 RxCocoa BehaviorRelay 进行单元测试
- typescript - 如何在不实例化的情况下调用类的方法?