Hanya ingin tahu, mengapa ini terjadi? Jika saya menjalankan:
netstat -an | find "443"
ke prompt perintah, koneksi "443" ditampilkan ok. Jika saya menjalankan perintah yang sama di konsol PowerShell atau ISE, saya mendapatkan kesalahan "CARI: Format parameter tidak benar". Apakah output netstat tidak disalurkan dengan benar untuk ditemukan di PS?
Catatan: Jika saya menjalankan netstat -an | findstr "443"
atau netstat -an | select-string "443"
dalam PS itu bekerja seperti yang diharapkan.
powershell
Vic
sumber
sumber
select-string
di PowerShellJawaban:
PowerShell mengevaluasi konten dalam tanda kutip ganda untuk melakukan ekspansi variabel, sub-ekspresi, dll, lalu membuang tanda kutip ganda tersebut. Apa PowerShell kembali dari
"443"
secara harfiah443
(perhatikan kutipan yang hilang).FIND.EXE
membutuhkan string pencarian yang disertai dengan tanda kutip ganda.Jika Anda ingin mencegah PowerShell melepaskan tanda kutip ganda, gunakan aksen kubur (`) untuk menghindarinya.
Anda juga dapat menggunakan
--%
parameter untuk melakukan pelarian. Membutuhkan PowerShell 3+.sumber
findstr
Utilitas tidak memerlukan tanda kutip ganda dalam/C
parameter string:findstr /C:somestring somefile
berfungsi seperti halnyafindstr /C:"somestring" somefile
. SebabFIND
, tanda kutip ganda diperlukan hadir.