tôi thấy tuyên bố Powershell này trong gần đây Hanselminutes post -
cat test.txt | foreach-object {$null = $_ -match '<FancyPants>(?<x>.*)<.FancyPants>'; $matches.x} | sort | get-unique
Tôi đang cố gắng tìm hiểu Powershell vào lúc này và tôi nghĩ rằng tôi hiểu hầu hết những gì đang xảy ra -
- tuyên bố vòng qua từng dòng của 'test.txt' và chạy một regex so với dòng hiện tại
- Tất cả các kết quả được đối chiếu và sau đó sắp xếp và bản sao loại bỏ
hiểu biết của tôi dường như rơi xuống khu vực này của báo cáo kết quả -
$null = $_ -match '<FancyPants>(?<x>.*)<.FancyPants>'; $matches.x
- là '
$null =
' một phần của mã làm gì, tôi nghi ngờ đây là để xử lý một tình huống khi không phù hợp được trả lại nhưng tôi không chắc chắn làm thế nào nó hoạt động? - Có phải '
$matches.x
' trả lại các kết quả được tìm thấy không?
Vì vậy, '$ matches.x' chứa các kết quả phù hợp cho đối tượng hiện tại, PS có tự động đối chiếu tất cả các tập hợp kết quả' $ matches' thành một tập kết quả lớn không? – ipr101
@ ipr101 Không, nó chỉ giữ được trận đấu cuối cùng. Tôi đã cập nhật câu trả lời của tôi với một ví dụ bạn có thể sử dụng để xem những gì có trong biến '$ Matches'. – Rynant
cảm ơn bạn đã có ý nghĩa hơn bây giờ – ipr101