Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows

วิธีใช้คำสั่ง 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 ใน 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:

ค้นหารายการไดเรกทอรีที่ระบุ แต่ละไดเรกทอรีต้องคั่นด้วยเครื่องหมายอัฒภาค (;) เช่น dir1;dir2;dir3 .

/a:

ระบุแอตทริบิวต์สีด้วยเลขฐานสิบหกสองหลัก พิมพ์ color
/?
สำหรับข้อมูลเพิ่มเติม

ระบุข้อความที่จะค้นหาใน ชื่อไฟล์ . จำเป็น

[\:][][…]

ระบุตำแหน่งและไฟล์หรือไฟล์ที่จะค้นหา ต้องมีชื่อไฟล์อย่างน้อยหนึ่งชื่อ

/?

แสดงวิธีใช้ที่พรอมต์คำสั่ง

การใช้งานคำสั่ง 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

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