Powershell - 仅获取 COM 端口号
Powershell - Get only the COM port number
任何人都可以建议如何从此 Powershell 代码中提取/获取 COM 值:
Get-WMIObject Win32_PnPEntity | where {$_.Name -like "Standard Serial over Bluetooth link*" -AND $_.DeviceID -like "*AB9078566C8A*"} |
>> Format-Table Name
此时的输出是:
Name
----
Standard Serial over Bluetooth link (COM10)
我只想得到:
10
更新:
感谢@js2010,我能够从 PowerShell 获取 COM 端口号。
如果有人能为他的回答点赞,我将不胜感激。我没有足够的代表来做那件事,atm。
最终代码为:
Get-WMIObject Win32_PnPEntity |
where {$_.Name -like 'Standard Serial over Bluetooth link*' -AND
$_.DeviceID -like '*AB9078566C8A*'} |
% name | select-string \d+ | % { $_.matches.value }
使用正则表达式。
$a = "Standard Serial over Bluetooth link (COM10)"
$a -match '\d+'
$matches[0]
10
这个怎么样? %
是 foreach-object
的快捷方式。 \d+
是数字的正则表达式。 Matches 是 select-string 输出的一个对象 属性,value 是一个 属性 inside matches.
Get-WMIObject Win32_PnPEntity |
where {$_.Name -like 'Standard Serial over Bluetooth link*' -AND
$_.DeviceID -like '*AB9078566C8A*'} |
% name | select-string \d+ | % { $_.matches.value }
10
我是这样测试的:
[pscustomobject]@{name='Standard Serial over Bluetooth link (COM10)'} |
% name | select-string \d+ | % { $_.matches.value }
10
任何人都可以建议如何从此 Powershell 代码中提取/获取 COM 值:
Get-WMIObject Win32_PnPEntity | where {$_.Name -like "Standard Serial over Bluetooth link*" -AND $_.DeviceID -like "*AB9078566C8A*"} |
>> Format-Table Name
此时的输出是:
Name
----
Standard Serial over Bluetooth link (COM10)
我只想得到:
10
更新:
感谢@js2010,我能够从 PowerShell 获取 COM 端口号。 如果有人能为他的回答点赞,我将不胜感激。我没有足够的代表来做那件事,atm。 最终代码为:
Get-WMIObject Win32_PnPEntity |
where {$_.Name -like 'Standard Serial over Bluetooth link*' -AND
$_.DeviceID -like '*AB9078566C8A*'} |
% name | select-string \d+ | % { $_.matches.value }
使用正则表达式。
$a = "Standard Serial over Bluetooth link (COM10)"
$a -match '\d+'
$matches[0]
10
这个怎么样? %
是 foreach-object
的快捷方式。 \d+
是数字的正则表达式。 Matches 是 select-string 输出的一个对象 属性,value 是一个 属性 inside matches.
Get-WMIObject Win32_PnPEntity |
where {$_.Name -like 'Standard Serial over Bluetooth link*' -AND
$_.DeviceID -like '*AB9078566C8A*'} |
% name | select-string \d+ | % { $_.matches.value }
10
我是这样测试的:
[pscustomobject]@{name='Standard Serial over Bluetooth link (COM10)'} |
% name | select-string \d+ | % { $_.matches.value }
10