Когда вы передаете выходные данные System.Net.WebClient
в Select-String, выходные данные обрабатываются как одна строка, поэтому выходные данные совпадают как единое целое.
Когда вы сохраняете выходные данные System.Net.WebClient
в файл, а затем читаете его, используя Select-String -Path path/to/the/file
, Select-String обрабатывает содержимое файла как массив строк и возвращает только строки, соответствующие шаблону.
К вашему сведению: в Powershell 3+ удобнее использовать командлет Invoke-WebRequest :
$uri = 'http://192.168.100.1/cgi-bin/status_cgi' (Invoke-WebRequest -Uri $uri).Content -split "`n" | Select-String -SimpleMatch Uptime
Рекомендации:
- Метод WebClient.DownloadString возвращает одну строку