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