Просто любопытно, почему это происходит? Если я бегу:
netstat -an | find "443"
в командной строке отображается «443» соединений нормально. Если я запускаю ту же команду в консоли PowerShell или ISE, я получаю сообщение об ошибке «НАЙТИ: неверный формат параметра». Вывод netstat не передается должным образом, чтобы найти его в PS?
Примечание: если я бегу netstat -an | findstr "443"
или netstat -an | select-string "443"
в PS те работают как положено.
PowerShell оценивает содержимое в двойных кавычках для выполнения любого расширения переменных, подвыражений и т. Д., А затем отбрасывает эти двойные кавычки. От чего возвращается PowerShell "443"
буквально 443
(обратите внимание на отсутствующие цитаты). FIND.EXE
требует строка поиска, заключенная в двойные кавычки.
Если вы хотите, чтобы PowerShell не удалял двойные кавычки, используйте знак ударения (`), чтобы избежать их.
netstat -a -n | find `"443`"
Вы также можете использовать --%
параметр для выполнения побега. Требуется PowerShell 3+.
nestat -a -n | find --% "443"