我在PowerShell中输出以下文本输出,这些输出来自于运行netsh wlan show networks
SSID 1 : LSOX
Network type : Infrastructure
Authentication : WPA2-Personal
Encryption : CCMP
SSID 2 : Embers_2ghz
Network type : Infrastructure
Authentication : WPA2-Personal
Encryption : CCMP
SSID 3 : BRIGHTON_LEVEL1
Network type : Infrastructure
Authentication : WPA2-Personal
Encryption : CCMP
SSID 4 : BRIGHTON_LEVEL2
Network type : Infrastructure
Authentication : WPA2-Personal
Encryption : CCMP
SSID 5 : BRIGHTON_PRODUCTION
Network type : Infrastructure
Authentication : WPA2-Personal
Encryption : CCMP
这就是我现在拥有的PowerShell,但是没有做我想做的事:(netsh wlan show networks) | Select-String -Pattern "(SSID .* : ?)" | % { $_.Matches[0].Value }
使用某种Select-String -Pattern
表达式我想只列出名称,因此输出将为:
LSOX
Embers_2ghz
BRIGHTON_LEVEL1
BRIGHTON_LEVEL2
BRIGHTON_PRODUCTION
我很擅长PowerShell,但在表达方面很糟糕,虽然我觉得它们很吸引人,但这里有一个我引用的网站http://powershell.com/cs/blogs/ebookv2/archive/2012/03/06/chapter-13-text-and-regular-expressions.aspx#regular-expressions
答案 0 :(得分:0)
我想我已经解决了......
这似乎有效:
(netsh wlan show networks) | Select-String -Pattern "(?<=SSID . : ).+" | % { $_.Matches[0].Value }