คุณเคยได้ยิน FINDSTR . ไหม และ Select-String ? Select-String เป็น cmdlet ที่ใช้ในการค้นหาข้อความและรูปแบบในสตริงและไฟล์อินพุต คล้ายกับ grep บน Linux &FINDSTR บน Windows ในคู่มือนี้ เราจะมาดูกันว่า FINDSTR คืออะไรและอย่างไร และ Select-String คำสั่งใน Windows 11/10
FINDSTR คืออะไรและใช้งาน FINDSTR อย่างไร
FINDSTR คือคำสั่งที่ใช้ค้นหาข้อความเฉพาะในไฟล์บน Windows ค้นหาสตริงเมื่อใส่คำย่อกลายเป็น FINDSTR นอกจากนี้ยังใช้เพื่อค้นหาไฟล์ที่มีข้อความเฉพาะ มีคำสั่ง FINDSTR ต่างๆ เพื่อทำหน้าที่ต่างๆ เปิดตัวครั้งแรกพร้อมกับ Windows 2000 Resource Kit ในชื่อ qgrep . เป็นเครื่องมือในตัวใน Windows และไฟล์มีอยู่ในรูปแบบ .exe FINDSTR ไม่ค้นหาไบต์ว่างเช่นช่องว่างในรูปแบบ Unicode
มีกฎพื้นฐานบางประการในการใช้คำสั่ง findstr บน Command Prompt หรือ Command Line Interpreters อื่นๆ ซึ่งพัฒนาโดย Microsoft คือ:
- แต่ละคำสั่ง FINDSTR ต้องมีสตริงที่ตามด้วยชื่อไฟล์
- คุณสามารถใช้อักขระตามตัวอักษรและอักขระเมตาในคำสั่ง FINDSTR อักขระตามตัวอักษรไม่มีความหมายพิเศษในไวยากรณ์ ตัวอักษรและตัวเลขเรียกว่าตัวอักษร อักขระเมตาเป็นสัญลักษณ์ที่มีความหมายเฉพาะสำหรับแต่ละรายการ ต่อไปนี้เป็นอักขระเมตาที่ยอมรับในไวยากรณ์และความหมาย
Meta-character | ค่า |
---|---|
ไวลด์การ์ด – ตัวละครใดก็ได้ | |
* | ทำซ้ำ – อักขระหรือคลาสก่อนหน้าเกิดขึ้นเป็นศูนย์หรือมากกว่า |
^ | ตำแหน่งบรรทัดเริ่มต้น – จุดเริ่มต้นของบรรทัด |
$ | ตำแหน่งสิ้นสุดบรรทัด – สิ้นสุดบรรทัด |
[คลาส] | คลาสอักขระ – ตัวละครตัวใดตัวหนึ่งในชุด |
[^class] | Inverse class – ตัวละครตัวใดตัวหนึ่งที่ไม่อยู่ในชุด |
[x-y] | ช่วง – อักขระใดๆ ภายในช่วงที่กำหนด |
\x | Escape – การใช้ตัวอักษรเมตาตามตัวอักษร |
\ | ตำแหน่งเริ่มต้นของคำ – จุดเริ่มต้นของคำ |
string\> | การสิ้นสุดตำแหน่งของคำ – จบคำ |
- คุณควรสร้างไฟล์ข้อความที่มีเกณฑ์การค้นหาในบรรทัดแยกต่างหากเมื่อคุณต้องการค้นหาสตริงหลายรายการ
- ใช้ช่องว่างระหว่างสตริงเพื่อค้นหาหลายสตริงในคำสั่งเดียว ยกเว้นไวยากรณ์ที่มี
/c
.
พารามิเตอร์และความหมายในไวยากรณ์ findstr
Parameter | คำอธิบาย |
---|---|
/b | จับคู่รูปแบบข้อความหากอยู่ที่ต้นบรรทัด |
/e | จับคู่รูปแบบข้อความหากอยู่ท้ายบรรทัด |
/l | ประมวลผลสตริงการค้นหาตามตัวอักษร |
/r | ประมวลผลสตริงการค้นหาเป็นนิพจน์ทั่วไป นี่คือการตั้งค่าเริ่มต้น |
/s | ค้นหาไดเรกทอรีปัจจุบันและไดเรกทอรีย่อยทั้งหมด |
/i | ละเว้นตัวพิมพ์ของอักขระเมื่อค้นหาสตริง |
/x | พิมพ์บรรทัดที่ตรงกันทุกประการ |
/v | พิมพ์เฉพาะบรรทัดที่ไม่ตรงกัน |
/n | พิมพ์หมายเลขบรรทัดของแต่ละบรรทัดที่ตรงกัน |
/m | พิมพ์เฉพาะชื่อไฟล์หากไฟล์มีรายการที่ตรงกัน |
/o | พิมพ์อักขระออฟเซ็ตก่อนแต่ละบรรทัดที่ตรงกัน |
/p | ข้ามไฟล์ที่มีอักขระที่ไม่สามารถพิมพ์ได้ |
/off[line] | ไม่ข้ามไฟล์ที่มีการตั้งค่าแอตทริบิวต์ออฟไลน์ |
/f: | รับรายการไฟล์จากไฟล์ที่ระบุ |
/c: | ใช้ข้อความที่ระบุเป็นสตริงการค้นหาตามตัวอักษร |
/g: | รับสตริงการค้นหาจากไฟล์ที่ระบุ |
/d: | ค้นหารายการไดเรกทอรีที่ระบุ แต่ละไดเรกทอรีต้องคั่นด้วยเครื่องหมายอัฒภาค (;) เช่น |
/a: | ระบุแอตทริบิวต์สีด้วยเลขฐานสิบหกสองหลัก พิมพ์ |
ระบุข้อความที่จะค้นหาใน ชื่อไฟล์ . จำเป็น | |
[\ | ระบุตำแหน่งและไฟล์หรือไฟล์ที่จะค้นหา ต้องมีชื่อไฟล์อย่างน้อยหนึ่งชื่อ |
/? | แสดงวิธีใช้ที่พรอมต์คำสั่ง |
การใช้งานคำสั่ง findstr
1] หากต้องการค้นหาคำว่า microsoft หรือ windows ในไฟล์ x.y คุณควรใช้:
findstr microsoft windows x.y
2] หากต้องการค้นหาคำว่า microsoft windows ในไฟล์ x.y คุณควรใช้:
findstr /c:"microsoft windows" x.y
ในคำสั่งด้านบน /c
ใช้เพื่อค้นหาข้อความที่ระบุ “microsoft windows” ในไฟล์
3] หากคุณต้องการค้นหาการเกิดขึ้นของคำว่า Microsoft ด้วยตัวพิมพ์ใหญ่ M ในไฟล์ข้อความ twc.txt คุณควรใช้:
findstr Microsoft twc.txt
4] หากคุณต้องการค้นหาคำเฉพาะเจาะจงของ Microsoft ในไดเร็กทอรีและไดเร็กทอรีย่อยโดยไม่ให้ความสำคัญกับตัวพิมพ์ ให้ใช้:
findstr /s /i Microsoft *.*
ในไวยากรณ์ด้านบน /s
ใช้เพื่อค้นหาไดเร็กทอรีปัจจุบันและไดเร็กทอรีย่อย /i
ใช้เพื่อละเว้นประเภทตัวพิมพ์เล็ก (ตัวพิมพ์ใหญ่ M) ในสตริง Microsoft
5] หากคุณต้องการค้นหาบรรทัดที่ขึ้นต้นด้วย To โดยเว้นวรรคหลายช่องก่อนคำนั้น และต้องการแสดงหมายเลขบรรทัดที่เกิดสตริง ให้ใช้:
findstr /b /n /r /c:^ *To *.bas
6] หากคุณต้องการค้นหาหลายสตริงในหลายไฟล์ด้วยเกณฑ์การค้นหาใน stringlist.txt และรายการไฟล์ใน filelist.txt และคุณต้องการดูผลลัพธ์ที่เก็บไว้ในไฟล์ result.out ให้ใช้:
findstr /g:stringlist.txt /f:filelist.txt > results.out
7] หากคุณต้องการค้นหาไฟล์ที่มีคำว่า thewindowsclub ในไดเร็กทอรีเฉพาะและไดเร็กทอรีย่อย ให้ใช้:
findstr /s /i /m \<thewindowsclub\> *.*
8] หากคุณต้องการค้นหาไฟล์ที่มี thewindowsclub และคำอื่นๆ ที่ขึ้นต้นด้วยวิทยานิพนธ์ เช่น เทอร์โมมิเตอร์ ฯลฯ ให้ใช้:
findstr /s /i /m \<the.* *.*
นี่คือวิธีที่คุณสามารถใช้คำสั่ง findstr ในล่าม Command-Line เช่น Command Prompt เป็นต้น คุณต้องเข้าใจทุกพารามิเตอร์และฟังก์ชันของมัน ตลอดจนอักขระเมตาและความหมายในการเขียนไวยากรณ์และใช้คำสั่ง findstr เป็นประจำพี>
Select-String คืออะไรและพารามิเตอร์
ลองนึกภาพว่าคุณกำลังเขียนโค้ดบางส่วนใน PowerShell และคุณสูญเสียการติดตามสตริงและข้อความบางรายการในไฟล์ PowerShell นั้น คุณต้องพบว่าในโค้ดหลายพันบรรทัดในสตริงและคำนับพัน มีคำสั่ง Select-String ซึ่งช่วยให้คุณสามารถค้นหาสตริงและข้อความในไฟล์อินพุต PowerShell เหล่านั้นได้ คล้ายกับ grep บน Linux
Select-String เป็น cmdlet ที่ใช้ในการค้นหาข้อความและรูปแบบในสตริงและไฟล์อินพุต คล้ายกับ grep บน Linux และ FINDSTR บน Windows เมื่อใช้ Select-String เพื่อค้นหาข้อความ ระบบจะค้นหารายการที่ตรงกันในแต่ละบรรทัดและแสดงชื่อไฟล์ หมายเลขบรรทัด และบรรทัดทั้งหมดที่มีการจับคู่เกิดขึ้น สามารถใช้เพื่อค้นหารายการที่ตรงกันหลายรายการต่อบรรทัด หรือเพื่อแสดงข้อความก่อนหรือหลังการจับคู่ หรือรับผลลัพธ์ในนิพจน์บูลีน เช่น จริงหรือเท็จ คุณยังสามารถใช้เพื่อแสดงข้อความทั้งหมด ยกเว้นการจับคู่นิพจน์ที่คุณใช้ในคำสั่ง WildCards ที่คุณใช้ใน FINDSTR สามารถใช้ใน Select-String ได้เช่นกัน นอกจากนี้ Select-String ยังทำงานร่วมกับการเข้ารหัสไฟล์ต่างๆ เช่น ASCII, Unicode เป็นต้น โดยใช้ Byte-Order-Mark (BOM) เพื่อกำหนดการเข้ารหัสไฟล์ หากไม่มี BOM ในไฟล์ Select-String จะถือว่าไฟล์นั้นเป็น UTF8
พารามิเตอร์ของ Select-String
Microsoft จินตนาการและพัฒนาพารามิเตอร์ด้านล่างซึ่งจะใช้ในไวยากรณ์
-AllMatches
ใช้เพื่อค้นหาการแข่งขันทั้งหมดในบรรทัดซึ่งต่างจากการจับคู่ครั้งแรกในบรรทัด Select-Sting ตามปกติ
-CaseSensitive
แสดงว่าการจับคู่นั้นคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ตามค่าเริ่มต้น Select-String จะไม่คำนึงถึงขนาดตัวพิมพ์
-Context
ใช้เพื่อจับจำนวนบรรทัดที่ระบุที่คุณป้อนก่อนและหลังบรรทัดของการแข่งขัน หากคุณป้อน 1 ระบบจะจับหนึ่งบรรทัดก่อนและหลังการแข่งขัน
-Culture
มีวัฒนธรรมบางอย่าง เช่น ลำดับ ค่าคงที่ ฯลฯ ในการเข้ารหัส พารามิเตอร์นี้ใช้เพื่อระบุวัฒนธรรมในไวยากรณ์
-Encoding
ใช้เพื่อระบุรูปแบบการเข้ารหัสของข้อความในไฟล์ เช่น ASCII, UTF8, UTF7, Unicode เป็นต้น
-Exclude
พารามิเตอร์นี้ใช้เพื่อแยกข้อความบางข้อความในไฟล์
-Include
พารามิเตอร์นี้ใช้เพื่อรวมข้อความในไฟล์
-InputObject
ใช้สำหรับระบุข้อความที่จะค้นหา
-List
ใช้สำหรับดึงรายการไฟล์ที่ตรงกับข้อความ
-LiteralPath
ใช้สำหรับระบุเส้นทางการค้นหา
-NoEmphasis
โดยทั่วไป Select-String จะเน้นการจับคู่ในไฟล์ พารามิเตอร์นี้ใช้เพื่อหลีกเลี่ยงการเน้น
-NotMatch
ใช้สำหรับค้นหาข้อความที่ไม่ตรงกับรูปแบบที่กำหนด
-Path
ใช้เพื่อระบุเส้นทางที่จะค้นหาพร้อมกับการใช้สัญลักษณ์แทน
-Pattern
พารามิเตอร์นี้ใช้เพื่อค้นหารูปแบบที่ตรงกันในแต่ละบรรทัด
-Quiet
พารามิเตอร์นี้ใช้เพื่อรับเอาต์พุตเป็นค่าบูลีน เช่น จริงหรือเท็จ
-Raw
ใช้เพื่อดูเฉพาะวัตถุที่ตรงกันมากกว่าข้อมูลการจับคู่
-SimpleMatch
พารามิเตอร์นี้ใช้เพื่อระบุการจับคู่แบบง่ายแทนที่จะเป็นการจับคู่นิพจน์ทั่วไป
ความแตกต่างระหว่าง FINDSTR และ Select-String
FINDSTR เป็นไฟล์ปฏิบัติการในยุคก่อน PowerShell ที่ใช้เพื่อค้นหาข้อความและสตริงในไฟล์ Select-String คือ PowerShell cmdlet ที่ใช้เพื่อค้นหาข้อความและรูปแบบในไฟล์ เมื่อเปรียบเทียบกับ FINDSTR แล้ว Select-String เป็น cmdlet ที่ทรงพลังและซับซ้อนกว่าซึ่งแสดงข้อมูลจำนวนมากเกี่ยวกับการจับคู่
PowerShell เทียบเท่ากับ grep คืออะไร
Select-String คือ PowerShell ที่เทียบเท่ากับ grep ที่มีใน Windows มันทำงานแบบเดียวกับที่ grep ทำ และให้ข้อมูลโดยละเอียดเกี่ยวกับการจับคู่ตามพารามิเตอร์ที่เราใช้ในไวยากรณ์
FINDSTR ทำงานบนไฟล์ Word ได้หรือไม่
ใช่ FINDSTR ใช้งานได้กับไฟล์ Word แต่ไม่สามารถแสดงการค้นหาที่ตรงกันได้แม้ว่าสตริงที่คุณป้อนจะมีอยู่ในไฟล์ก็ตาม มันสามารถให้ผลลัพธ์เป็นไฟล์ไบนารีในรูปแบบ .doc แต่ไม่สามารถให้ผลลัพธ์ในรูปแบบ .docx ด้วยเหตุผลทางเทคนิคที่ไม่ทราบสาเหตุ
อ่านที่เกี่ยวข้อง :วิธีตรวจสอบเวอร์ชันของ PowerShell ใน Windows