วิธีใช้ FINDSTR และคำสั่ง Select-String ใน Windows 11/10

คุณเคยได้ยินFINDSTRและSelect-Stringหรือไม่? Select-String เป็น cmdlet ที่ใช้ในการค้นหาข้อความและรูปแบบในสตริงและไฟล์อินพุต คล้ายกับ grep บนLinux & FINDSTRบนWindows ในคู่มือนี้ เราจะมาดูกันว่าจะใช้ คำสั่ง FINDSTRและSelect-String อย่างไรและอย่างไร ใน Windows 11/10

วิธีใช้คำสั่ง FindSTR และ Select-String

 

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.)



About the author

ฉันเป็นวิศวกรซอฟต์แวร์ที่มีประสบการณ์มากกว่า 10 ปีในการพัฒนาและบำรุงรักษาแอปพลิเคชัน Windows 11 หรือ 10 ฉันยังมีประสบการณ์ในการทำงานกับ Google Docs และ Microsoft Edge ทักษะของฉันในด้านเหล่านี้ทำให้ฉันเป็นผู้สมัครที่ยอดเยี่ยมสำหรับบทบาทวิศวกรรมซอฟต์แวร์ในอนาคต



Related posts