Windows에 저장된 무선 네트워크 목록을 얻으려는 경우 각각에 대해 연결하고 네트워크에 자동 연결하도록 지시합니다. 나는 정상적인 상황에서 이것을 실행할 기계에 단지 하나의 저장된 네트워크 만 가질 것이다. 여기에 내가 가진 초기 스크립트가 있습니다.PowerShell 결과의 특정 텍스트 검색
$wlanprofile = @()
$wlanprofiles = @()
$wlanprofiles = (netsh wlan show profiles) -join "" -replace "Profiles on interface .*User profiles------------- ","" -split " All User Profile : " -replace "All User Profile : ",""
ForEach($wlanprofile in $wlanprofiles){
netsh wlan connect name=$wlanprofile
Start-Sleep -Seconds 5
netsh wlan set profileparameter name=$wlanprofile connectionmode=auto
}
이 반환
만 문제가Hub
dlink
Belkin.5076
, 이것은 정적 텍스트에 너무 많이 의존, 내가 선택 문자열의 방법으로 저에게 동일한 결과를 얻을이 더 현명함을 사용하고 싶었, 패턴, 제외 및/또는 포함 할 수 있습니다. ":"그들 예를 들어, 처음 몇 줄을 제거
$wlanprofiles = (netsh wlan show profiles)
$wlanprofiles | Select-String -Pattern ": "
이는 그냥 라인 저를 제공합니다
이
내가 지금까지 무엇을 가지고All User Profile : Hub
All User Profile : dlink
All User Profile : Belkin.5076
그러나 나는 한 단계 더 나아가 을 제거하려면 ":" 및 이전의 모든 각 라인에, 예를 들어, "* :". 그래서 나는 단지이 대신해야합니다 :
Hub
dlink
Belkin.5076
을 내가 그래서이 그것을 수행} 표현식 또는 제외하거나 와일드 카드를 포함하여 다른 선택 문자열, 어쩌면 foreach는 {중 하나를 추가 할 필요가 있다고 생각 각 줄마다,하지만 나는 붙어있다.
완벽하게 작동합니다. 대단히 감사합니다! –
정답으로 표시하려면 체크 표시 (왼쪽)를 사용해야합니다. –