วิธีใช้ FINDSTR และคำสั่ง Select-String ใน Windows 11/10
คุณเคยได้ยินFINDSTRและSelect-Stringหรือไม่? Select-String เป็น cmdlet ที่ใช้ในการค้นหาข้อความและรูปแบบในสตริงและไฟล์อินพุต คล้ายกับ grep บนLinux & FINDSTRบนWindows ในคู่มือนี้ เราจะมาดูกันว่าจะใช้ คำสั่ง FINDSTRและSelect-String อย่างไรและอย่างไร ใน Windows 11/10
Â
FINDSTRคืออะไรและจะใช้FINDSTR . อย่างไร(FINDSTR)
FINDSTRคือคำสั่งที่ใช้ค้นหาข้อความเฉพาะในไฟล์บนWindows ค้นหา(Find)สตริงเมื่อใส่สั้นกลายเป็นFINDSTR นอกจากนี้ยังใช้เพื่อค้นหาไฟล์ที่มีข้อความเฉพาะ มี คำสั่ง FINDSTR ต่างๆ เพื่อทำหน้าที่ต่างๆ เปิดตัวครั้งแรกพร้อมกับWindows 2000 Resource Kitในชื่อqgrep เป็นเครื่องมือในตัวในWindowsและไฟล์มีอยู่ในรูปแบบ .exe FINDSTRไม่ค้นหาไบต์ว่างเช่นช่องว่างในรูปแบบUnicode
มีกฎพื้นฐานบางประการในการใช้คำสั่ง findstr บนCommand PromptหรือCommand Line Interpreters อื่น ๆซึ่งพัฒนาโดยMicrosoft พวกเขาคือ:
- คำสั่ง FINDSTR(FINDSTR)แต่ละคำสั่งต้องมีสตริงตามด้วยชื่อไฟล์
- คุณสามารถใช้อักขระตามตัวอักษรและอักขระเมตาในคำสั่งFINDSTR อักขระตามตัวอักษรไม่มีความหมายพิเศษในไวยากรณ์ ตัวอักษรและตัวเลขเรียกว่าตัวอักษร อักขระเมตาเป็นสัญลักษณ์ที่มีความหมายเฉพาะสำหรับแต่ละรายการ ต่อไปนี้เป็นอักขระเมตาที่ยอมรับในไวยากรณ์และความหมาย
Meta-character | Value |
---|---|
. | Wildcard – Any character |
* | Repeat – Zero or more occurrences of the previous character or class. |
^ | Beginning line position – Beginning of the line. |
$ | Ending line position – End of the line. |
[class] | Character class – Any one character in a set. |
[^class] | Inverse class – Any one character not in a set. |
[x-y] | Range – Any characters within the specified range. |
\x | Escape – Literal use of a meta-character. |
\<string | Beginning word position – Beginning of the word. |
string\> | Ending word position – End of the word. |
- คุณควรสร้างไฟล์ข้อความที่มีเกณฑ์การค้นหาในบรรทัดแยกต่างหากเมื่อคุณต้องการค้นหาหลายสตริง
- ใช้(Use)ช่องว่างระหว่างสตริงเพื่อค้นหาหลายสตริงในคำสั่งเดียว ยกเว้นไวยากรณ์ที่มี
/c
.
พารามิเตอร์และความหมายใน findstr syntax
พารามิเตอร์
คำอธิบาย
/b
จับคู่(Matches)รูปแบบข้อความหากอยู่ที่ต้นบรรทัด
/e
จับคู่(Matches)รูปแบบข้อความหากอยู่ท้ายบรรทัด
/l
ประมวลผลสตริงการค้นหาตามตัวอักษร
/r
ประมวลผลสตริงการค้นหาเป็นนิพจน์ทั่วไป นี่คือการตั้งค่าเริ่มต้น.
/s
ค้นหา(Searches)ไดเร็กทอรีปัจจุบันและไดเร็กทอรีย่อยทั้งหมด
/ฉัน
ละเว้นตัวพิมพ์ของอักขระเมื่อค้นหาสตริง
/x
พิมพ์เส้นที่ตรงกันทุกประการ
/v
พิมพ์เฉพาะบรรทัดที่ไม่มีรายการที่ตรงกัน
/n
พิมพ์หมายเลขบรรทัดของแต่ละบรรทัดที่ตรงกัน
/m
พิมพ์เฉพาะชื่อไฟล์หากไฟล์มีรายการที่ตรงกัน
/o
พิมพ์ออฟเซ็ตอักขระก่อนแต่ละบรรทัดที่ตรงกัน
/p
ข้ามไฟล์ที่มีอักขระที่ไม่สามารถพิมพ์ได้
/off[บรรทัด]
ไม่ข้ามไฟล์ที่มีการตั้งค่าแอททริบิวต์ออฟไลน์
/f:<file>
รับรายการไฟล์จากไฟล์ที่ระบุ
/c:<string>
ใช้ข้อความที่ระบุเป็นสตริงการค้นหาตามตัวอักษร
/g:<file>
รับสตริงการค้นหาจากไฟล์ที่ระบุ
/d:<dirlist>
ค้นหา(Searches)รายการไดเร็กทอรีที่ระบุ แต่ละไดเร็กทอรีต้องคั่นด้วยเครื่องหมายอัฒภาค (;) dir1;dir2;dir3
ตัวอย่าง เช่น
/a:<colorattribute>
ระบุแอตทริบิวต์สีด้วยเลขฐานสิบหกสองหลัก พิมพ์ สำหรับข้อมูลเพิ่มเติมcolor
/?
<string>
ระบุข้อความที่จะค้นหาใน ชื่อไฟล์ (filename)ที่จำเป็น.
<span “>[\<drive>:][<path>]<ชื่อไฟล์>[…]
ระบุตำแหน่งและไฟล์หรือไฟล์ที่จะค้นหา ต้องมีชื่อไฟล์อย่างน้อยหนึ่งชื่อ
/?
แสดงวิธีใช้ที่พรอมต์คำสั่ง
การใช้คำสั่ง findstr
1] หากต้องการค้นหาคำว่า microsoft หรือ windows ในไฟล์ xy คุณควรใช้:
findstr microsoft windows x.y
2] ในการค้นหาคำว่า microsoft windows ในไฟล์ xy คุณควรใช้:
findstr /c:"microsoft windows" x.y
ในคำสั่ง/c
ดังกล่าวจะใช้เพื่อค้นหาข้อความที่ระบุ 'microsoft windows' ในไฟล์
3] หากคุณต้องการค้นหาคำว่าMicrosoftที่มีตัวพิมพ์ใหญ่ M ในไฟล์ข้อความ twc.txt คุณควรใช้:
findstr Microsoft twc.txt
4] หากคุณต้องการค้นหาคำเฉพาะเจาะจงของ Microsoft(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เป็นต้น คุณต้องเข้าใจทุกพารามิเตอร์และหน้าที่ของมัน ตลอดจนอักขระ meta และความหมายในการเขียนไวยากรณ์และใช้คำสั่ง findstr เป็นประจำ
Select-String คืออะไรและพารามิเตอร์ของมันคืออะไร
ลองนึกภาพว่า(Imagine)คุณกำลังเขียนโค้ดบางส่วนในPowerShellและคุณสูญเสียการติดตามสตริงและข้อความบางรายการในไฟล์PowerShell นั้น (PowerShell)คุณต้องพบว่าในโค้ดหลายพันบรรทัดในสตริงและคำนับพัน มี คำสั่ง Select-Stringซึ่งช่วยให้คุณสามารถค้นหาสตริงและข้อความในไฟล์อินพุตPowerShell เหล่านั้นได้ (PowerShell)คล้ายกับ grep บนLinux
Select-Stringเป็น cmdlet ที่ใช้ในการค้นหาข้อความและรูปแบบในสตริงและไฟล์อินพุต คล้ายกับ grep บนLinuxและFINDSTRบนWindows เมื่อใช้Select-Stringเพื่อค้นหาข้อความ ระบบจะค้นหารายการที่ตรงกันในแต่ละบรรทัดและแสดงชื่อไฟล์ หมายเลขบรรทัด และบรรทัดทั้งหมดที่มีการจับคู่เกิดขึ้น สามารถใช้เพื่อค้นหารายการที่ตรงกันหลายรายการต่อบรรทัด หรือเพื่อแสดงข้อความก่อนหรือหลังการจับคู่ หรือรับผลลัพธ์ในนิพจน์บูลีน เช่นจริง(True)หรือเท็จ(False)นอกจากนี้ คุณยังสามารถใช้เพื่อแสดงข้อความทั้งหมด ยกเว้นการจับคู่ของนิพจน์ที่คุณ ใช้ในคำสั่ง 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
พารามิเตอร์นี้ใช้เพื่อรับเอาต์พุตใน ค่า บูลี(Boolean)นเช่นTrueหรือFalse
-Raw
ใช้เพื่อดูเฉพาะวัตถุที่ตรงกันมากกว่าข้อมูลการจับคู่(Match)
-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 ด้วยเหตุผลทางเทคนิคที่ไม่ทราบสาเหตุ
การอ่านที่เกี่ยวข้อง(Related Read) : วิธีตรวจสอบเวอร์ชันของ PowerShell ใน Windows(How to check the PowerShell version in Windows.)
Related posts
รายชื่อคำสั่ง DISKPART และวิธีการใช้งานใน Windows 11/10
วิธีการแสดง Command Line ใน Task Manager ของ Windows 11/10
วิธีการฆ่ากระบวนการโดยใช้ Command Line ใน Windows 10
ChkDsk Command Line Options, Switches, Parameters ใน Windows 10
วิธีปรับขนาด Video โดยใช้ Command-line ด้วย FFmpeg ใน Windows 10
วิธีการเปรียบเทียบสอง Files สำหรับการเปลี่ยนแปลงโดยใช้ Command Prompt
Manage Wireless Networks ใช้ Command Prompt ใน Windows 10
วิธีการวัด Reaction Time ใน Windows 11/10
Convert CSV ถึง Excel (XLS or XLSX) ใช้ Command line ใน Windows 10
วิธีใช้ Netstat command เพื่อแก้ไขปัญหาเครือข่าย
สร้างรายการโปรแกรมเริ่มต้นผ่าน Command Line หรือ PowerShell
Best ฟรี Timetable software สำหรับ Windows 11/10
วิธีใช้เครื่องมือในตัว Charmap and Eudcedit Windows 10
URI Commands เพื่อเปิด Microsoft Store apps ใน Windows 11/10
วิธีเล่น RTSP stream Via Command Line Interface การใช้ FFmpeg
วิธีการสำรองข้อมูล Move หรือ Delete PageFile.sys เมื่อปิดเครื่องใน Windows 10
Fix Crypt32.dll ไม่พบข้อผิดพลาดใน Windows 11/10
เปิดใช้งาน Network Connections ในขณะที่อยู่ใน Modern Standby บน Windows 10
Windows.edb file ใน Windows 10 คืออะไร
RegAsm.exe คืออะไร วิธีการยกเลิกการลงทะเบียน DLL โดยใช้ RegAsm.exe?