Findstr: ตัวอย่างและเคล็ดลับการใช้เครื่องมือ CMD Windows ที่มีประโยชน์

สำหรับผู้ที่ไม่ได้ฝึกหัด เครื่องมือค้นหารูปแบบ เช่น findstr อาจดูเหมือนไร้ประโยชน์ แต่เมื่อจัดการกับไฟล์บันทึกที่ระบบสร้างขึ้นหรือเอาต์พุตบรรทัดคำสั่งที่มีข้อความหลายร้อยบรรทัด findstr เป็นเพียงเครื่องมือที่คุณต้องการ

ผู้ใช้ ระบบปฏิบัติการ Linuxจะคุ้นเคยกับยูทิลิตี้อันน่าทึ่งของ คำสั่ง Grepและ findstr ทำหน้าที่คล้ายคลึงกันในMicrosoft Windows (Microsoft Windows)คุณสามารถรวมเข้ากับคำสั่งอื่นๆ(other commands)โดยใช้ไพพ์หรือเรียกใช้โดยตรงเพื่อแยกวิเคราะห์ไฟล์ข้อความหลายไฟล์ มาดูกันว่า findstr ทำงานอย่างไรด้วยตัวอย่างบางส่วน

การใช้คำสั่ง Findstr

ไวยากรณ์พื้นฐานนั้นง่าย – findstr , ที่ไหนเป็นรูปแบบการค้นหาและคือ address ของไฟล์ที่จะค้นหา เปิดCommand Promptแล้วลองดู

findstr SFC example1.txt

คำสั่งนี้จะค้นหาและส่งออกบรรทัดทั้งหมดที่มีสตริงการค้นหาSFC โปรดทราบว่าโดยค่าเริ่มต้น findstr จะคำนึงถึงขนาดตัวพิมพ์ ดังนั้นการกล่าวถึงSFCจะไม่ถูกจับคู่

พารามิเตอร์

คุณสามารถปรับแต่งวิธีการทำงานของ findstr เพิ่มเติมได้ด้วยการใส่พารามิเตอร์ทางเลือก สวิตช์เช่น /B หรือ /I แก้ไขพฤติกรรมของ findstr โดยกำหนดเงื่อนไขเพิ่มเติมในการค้นหา ตัวอย่างเช่น:

findstr /I SFC example1.txt

การรวม /I เป็นพารามิเตอร์ทำให้ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ไม่คำนึงถึงตัวพิมพ์เล็ก ซึ่งช่วยให้การกล่าวถึงคำนั้นตรงกันทั้งหมด โดยไม่คำนึงถึงการใช้อักษรตัวพิมพ์ใหญ่ คุณสามารถค้นหารายการพารามิเตอร์ทั้งหมดของ findstr ได้ในเอกสาร Microsoft อย่างเป็น(official Microsoft docs)ทางการ

รูปแบบตัวเลือก

พารามิเตอร์ไม่ใช่วิธีเดียวที่คุณสามารถปรับแต่ง findstr ตัวอย่างเช่น การใส่ <string> ในเครื่องหมายคำพูด ทำให้คุณสามารถระบุรูปแบบได้หลายรูปแบบ ทำให้คุณจับคู่ได้หากพบสตริงข้อความใดๆ

findstr “SFC DISM” example1.txt

ด้านบนจะแสดงบรรทัดที่ตรงกันซึ่งมีเงื่อนไขข้อใดข้อหนึ่ง สิ่งนี้ทำให้มีประโยชน์เมื่อมองหาการกล่าวถึงรายการที่มีชื่อต่างกัน

นิพจน์ทั่วไป

Findstrสามารถค้นหาไฟล์ได้หลายไฟล์ การเปลี่ยนแปลงเป็นนิพจน์ทั่วไปทำให้คำสั่งค้นหารูปแบบที่ระบุในไฟล์ทั้งหมดที่ตรงกัน

findstr SFC *.txt

การใช้อักขระตัวแทนจะจับคู่ regex กับไฟล์ข้อความทั้งหมดในไดเร็กทอรีปัจจุบันและไดเร็กทอรีย่อย ผลลัพธ์จะถูกแยกตามชื่อไฟล์เช่นเดียวกัน ช่วยให้คุณเห็นว่าบรรทัดใดมาจากไฟล์ใด

ท่อ

เช่นเดียวกับคำสั่ง cmd ส่วนใหญ่ findstr ยังสามารถใช้กับเอาต์พุตของคำสั่งอื่นๆ เพียง(Just)เพิ่มไพพ์หลังสิ้นสุดคำสั่งเป้าหมายและเรียกใช้ findstr โดยไม่ต้องใช้ a.

dir | findstr .txt

สิ่งนี้จะรันการค้นหา findstr บนเอาต์พุตของคำสั่ง dir โดยส่งคืนรายการไฟล์ที่ลงท้ายด้วย. txt แน่นอน ตัวอย่างเฉพาะนี้ไม่มีประโยชน์ในทางปฏิบัติ เนื่องจาก dir สามารถระบุตำแหน่งไฟล์ประเภทเดียวกันด้วยนิพจน์ทั่วไปได้

นอกจากนี้ยังสามารถใช้เส้นทางที่ยาวกว่าในการเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์ข้อความ(redirecting the output to a text file)จากนั้นใช้ findstr ในไฟล์ข้อความ แต่จะง่ายกว่าที่จะตัดพ่อค้าคนกลาง

แอพพลิเคชั่นของ Findstr ใน Windows

การใช้งาน findstr ที่เห็นได้ชัดนั้นสามารถเห็นได้ชัดจากไวยากรณ์เพียงอย่างเดียว คุณสามารถค้นหาไฟล์ข้อความที่มีสตริงข้อความเฉพาะ หรือดูว่ามีสตริงใดอยู่ในไฟล์หรือไม่

แม้ว่าในทางทฤษฎีจะมีประโยชน์ แต่ก็ไม่ค่อยเห็นการใช้งานนอกกรณีที่เกิดขึ้นได้ยาก ในยุคของบริการคลาวด์อย่างGoogle เอกสาร(Google Docs)คนส่วนใหญ่ไม่มีไฟล์ข้อความจำนวนมากอีกต่อไป

การใช้งานจริงของ findstr นั้นละเอียดกว่าเล็กน้อยและเกี่ยวข้องกับผลลัพธ์ที่ทรงพลังกว่า ต่อไปนี้คือตัวอย่างที่น่าสนใจบางส่วน

การค้นหาประเภทไฟล์เฉพาะ

คำสั่ง dir มีตัวเลือกในการค้นหาชื่อไฟล์โดยใช้นิพจน์ทั่วไปอยู่แล้ว แต่ด้วย findstr คุณสามารถค้นหาไฟล์ที่แชร์คุณลักษณะอื่นๆ เช่น เวลาหรือวันที่สร้าง

สมมติว่า(Suppose)เกิดข้อผิดพลาดเมื่อเวลา 18:43 น. และคุณต้องการค้นหาไฟล์บันทึกทั้งหมดที่สร้างขึ้นในขณะนั้น ด้วยคำสั่ง dir เพียงอย่างเดียว คุณจะต้องกรองผลลัพธ์ด้วยตนเองหรือรับไฟล์บันทึกทั้งหมดแล้วเปรียบเทียบ การใช้ findstr จะกลายเป็นคำสั่งง่ายๆ

dir | findstr 06:43

คุณสามารถลองใช้เคล็ดลับเดียวกันนี้เพื่อค้นหาไฟล์ที่สร้างขึ้นในวันที่ระบุหรือรับรายการไดเรกทอรี

dir | findstr DIR

การ กรองข้อมูลเครือข่าย(Network Information)ด้วยNetstat

Netstat เป็นคำสั่ง (Netstat)Windows ที่ มีประโยชน์ซึ่งจะให้ข้อมูลทั้งหมดเกี่ยวกับการเชื่อมต่อเครือข่ายของคอมพิวเตอร์ของคุณ — ข้อมูลมากเกินไป ซึ่งเป็นที่ที่ findstr เข้ามา

การวางเอาต์พุตของ netstat ลงใน findstr ช่วยให้คุณค้นหาการเชื่อมต่อกับคุณสมบัติเฉพาะได้ ตัวอย่างเช่น นี่คือวิธีที่คุณจะได้รับรายชื่อการเชื่อมต่อที่สร้างไว้แล้วทั้งหมด

netstat | findstr ESTABLISHED

เคล็ดลับนี้มีประโยชน์ในการวินิจฉัยปัญหาเครือข่าย คุณยังสามารถใช้ findstr กับPID ของแอปพลิเคชัน เพื่อค้นหาการเชื่อมต่อทั้งหมดที่เปิดโดยกระบวนการเฉพาะ

netstat -o | findstr 13120

การรับที่อยู่ IP เฉพาะ

คำสั่ง ipconfig ให้คุณดูรายละเอียดของอินเทอร์เฟซเครือข่ายทั้งหมดของระบบ รวมถึงที่อยู่ IP คุณสามารถใช้ findstr เพื่อดึงข้อมูลที่อยู่ IP บางประเภทโดยไม่ต้องเลื่อนดูข้อมูลทั้งหมด

ipconfig | findstr Temporary

คุณสามารถขยายวิธีการนี้เพื่อรับข้อมูลใดๆ จาก ipconfig จากซับเน็ตมาสก์ไปยังที่อยู่เกตเวย์

กำลังวิเคราะห์ไฟล์สคริปต์

ไม่ว่าคุณจะเขียนโค้ดในภาษาโปรแกรมใด ไฟล์สคริปต์ในท้ายที่สุดก็เป็นเพียงข้อความ ซึ่งหมายความว่าคุณสามารถใช้ findstr เพื่อวิเคราะห์สคริปต์และดึงข้อมูลเฉพาะส่วนโดยไม่ต้องค้นหาโค้ดทั้งหมด

สมมติว่า(Say)เราต้องการดูว่าคำสั่ง if ถูกใช้ในสคริปต์เฉพาะอย่างไร เราสามารถใช้คำสั่งต่อไปนี้:

findstr ถ้า script.ahk(findstr if script.ahk )

สิ่งนี้ไม่เพียงแต่จะแสดงบรรทัดโดยใช้คำสั่ง if แต่ยังแสดงนิพจน์ที่ใช้อีกด้วย คุณยังสามารถรวมพารามิเตอร์ /N เพื่อแสดงหมายเลขบรรทัด ซึ่งสะดวกมากสำหรับไฟล์สคริปต์

findstr /N if script.ahk

Findstr มูลค่าการใช้?

ปัญหาหลักในการนำทางอินเทอร์เฟซบรรทัดคำสั่งคือจำนวนข้อความที่ต้องการกรอง Findstrเป็นเครื่องมือที่จำเป็นสำหรับการดึงข้อมูลที่เป็นประโยชน์และกรองขยะ

เนื่องจากคำสั่งเทอร์มินัลทั้งหมดให้เอาต์พุตแบบข้อความ findstr จึงสามารถใช้เพื่อค้นหาข้อมูลที่เกี่ยวข้องได้เสมอ ตั้งแต่การแก้ไขปัญหาเครือข่าย(troubleshooting network issues)ไปจนถึงการค้นหาไฟล์ที่ถูกต้อง การดำเนินการทุกอย่างจะมีประสิทธิภาพมากขึ้นด้วย findstr

แม้จะอยู่นอกการทำงานร่วมกันกับคำสั่งอื่นๆ findstr ก็มีประโยชน์สำหรับความสามารถในการสำรวจเนื้อหาของไฟล์ข้อความ คุณสามารถค้นหาข้อผิดพลาดเฉพาะในล็อกไฟล์ที่เครื่องสร้างขึ้น หรือเรียกส่วนของโค้ดในสคริปต์ที่ซับซ้อน

กล่าวโดยย่อ findstr เป็นเครื่องมือที่ขาดไม่ได้ในคลังแสงของ ผู้ใช้ Windows ขั้นสูง โดยเฉพาะอย่างยิ่งผู้ใช้ที่ต้องการทำความคุ้นเคยกับอินเทอร์เฟซบรรทัดคำสั่ง



About the author

ฉันเป็นวิศวกรซอฟต์แวร์และบล็อกเกอร์ที่มีประสบการณ์เกือบ 10 ปีในสาขานี้ ฉันเชี่ยวชาญในการสร้างบทวิจารณ์เครื่องมือและบทช่วยสอนสำหรับแพลตฟอร์ม Mac และ Windows รวมถึงการให้ความเห็นจากผู้เชี่ยวชาญในหัวข้อการพัฒนาซอฟต์แวร์ ฉันยังเป็นวิทยากรและผู้สอนมืออาชีพ โดยได้นำเสนอผลงานในการประชุมเทคโนโลยีทั่วโลก



Related posts