我正在尝试获取powershell脚本,以查看是否连接了USB扫描仪。
如果它在那里,它就像我需要的那样工作,如果它不在那里,它就会出错。
我希望能够有它只是结束或让我知道有没有扫描仪附加。
在不存在的情况下冒犯的行是:
$USBscanner = wmic path CIM_LogicalDevice where "DeviceID like 'USB\\VID_0C2E%' and DeviceID like 'USB\\%PID_0B01%' and Description like 'USB Composite Device%'" get /value发布于 2021-07-29 02:47:12
在继续执行脚本之前,您始终可以检查变量是否有任何数据,并提前结束:
if (-not $USBscanner) { Throw 'USB Scanner not found!' }或者,您可以让所有错误都以一个首选项终止您的脚本:
$ErrorActionPreference = 'Stop'如果您不想只终止脚本,则可以从wmic.exe中try和catch错误
Try {
$ErrorActionPreference = 'Stop'
wmic path CIM_LogicalDevice WHERE 'DeviceID="MissingDevice"'
}
Catch {
Write-Warning 'USB Scanner not found'
}作为建议,最好将CIM的实际Powershell cmdlet与上面的if语句一起使用。这些命令返回powershell构建用于操作的实际对象:
# check if USB scanner device is attached:
$USBscanner = Get-CimInstance -ClassName CIM_LogicalDevice |
where {$_.DeviceID -Like 'USB\VID_0C2E*' -and $_.DeviceID -like 'USB\*PID_0B01*'}
if (-not $USBscanner) { Throw 'USB Scanner not found!' }https://stackoverflow.com/questions/68564951
复制相似问题