Juste curieux, pourquoi cela se produit-il? Si je cours:
netstat -an | find "443"
dans une invite de commande, les connexions "443" sont affichées ok. Si j'exécute la même commande dans une console PowerShell ou ISE, j'obtiens l'erreur "FIND: Format de paramètre non correct". La sortie netstat n'est-elle pas correctement canalisée pour être trouvée dans PS?
Remarque: Si je lance netstat -an | findstr "443"
ou netstat -an | select-string "443"
dans PS, ceux-ci fonctionnent comme prévu.
powershell
Vic
la source
la source
select-string
dansRéponses:
PowerShell évalue le contenu entre guillemets doubles pour effectuer une expansion variable, des sous-expressions, etc., puis il supprime ces guillemets doubles. Ce que PowerShell renvoie
"443"
est littéralement443
(notez les guillemets manquants).FIND.EXE
nécessite la chaîne de recherche entre guillemets.Si vous souhaitez empêcher PowerShell de supprimer les guillemets doubles, utilisez l'accent grave (`) pour y échapper.
Vous pouvez également utiliser le
--%
paramètre pour effectuer l'évasion. Nécessite PowerShell 3+.la source
findstr
utilitaire ne nécessite pas de guillemets doubles dans le/C
paramètre de chaîne:findstr /C:somestring somefile
fonctionne comme le faitfindstr /C:"somestring" somefile
. PourFIND
, les guillemets doubles sont requis présents.