نحوه استفاده از دستورات FINDSTR و Select-String در ویندوز 11/10

آیا تا به حال نام FINDSTR و Select-String را شنیده اید ؟ Select-String یک cmdlet است که برای جستجوی متن و الگوها در رشته ها و فایل های ورودی استفاده می شود. شبیه grep در لینوکس(Linux) و FINDSTR در ویندوز(Windows) است. در این راهنما، نحوه استفاده از دستورات FINDSTR(FINDSTR ) و Select-String را در ویندوز 11/10 می بینیم.

نحوه استفاده از دستورات FindSTR و Select-String

آ 

FINDSTR چیست(FINDSTR) و چگونه از FINDSTR استفاده کنیم(FINDSTR)

FINDSTR دستوری است که برای یافتن متن خاص در فایل های ویندوز(Windows) استفاده می شود. یافتن(Find) رشته زمانی که به طور خلاصه بیان شد تبدیل به FINDSTR شد . همچنین برای یافتن فایل هایی با متن خاص استفاده می شود. دستورات FINDSTR(FINDSTR) مختلفی برای انجام عملکردهای مختلف وجود دارد. اولین بار با کیت منبع (Resource Kit)ویندوز 2000(Windows 2000) با نام qgrep منتشر(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

پارامتر

شرح

(Matches)اگر در ابتدای یک خط باشد با الگوی متن مطابقت دارد .

/e

(Matches)اگر در انتهای یک خط باشد با الگوی متن مطابقت دارد .

/l

رشته های جستجو را به معنای واقعی کلمه پردازش می کند.

/r

رشته های جستجو را به عنوان عبارات منظم پردازش می کند. این تنظیمات پیش فرض است.

/s

(Searches)دایرکتوری فعلی و همه زیر شاخه ها را جستجو می کند.

/من

هنگام جستجوی رشته، مورد کاراکترها را نادیده می گیرد.

/ایکس

خطوطی را چاپ می کند که دقیقا مطابقت دارند.

/v

فقط خطوطی را چاپ می‌کند که مطابقت ندارند.

/n

شماره خط هر خطی را که مطابقت دارد چاپ می کند.

/m

فقط نام فایل را در صورتی چاپ می کند که یک فایل دارای مطابقت باشد.

/o

قبل از هر خط منطبق، افست کاراکتر را چاپ می کند.

فایل‌های دارای کاراکترهای غیرقابل چاپ را پرش می‌کند.

/آفلاین]

فایل هایی را که دارای مجموعه ویژگی آفلاین هستند رد نمی شود.

/f:<file>

یک لیست فایل از فایل مشخص شده دریافت می کند.

/c:<string>

از متن مشخص شده به عنوان یک رشته جستجوی تحت اللفظی استفاده می کند.

/g: <file>

رشته های جستجو را از فایل مشخص شده دریافت می کند.

/d:<dirlist>

(Searches)لیست مشخص شده دایرکتوری ها را جستجو می کند. برای مثال، هر دایرکتوری باید با یک نقطه ویرگول (;) جدا شود  dir1;dir2;dir3.

/a: <colorattribute>

ویژگی های رنگ را با دو رقم هگزادسیمال مشخص می کند. برای اطلاعات بیشتر تایپ  کنیدcolor
/?

<رشته>

متن مورد نظر برای جستجوی  نام فایل(filename) را مشخص می کند. ضروری.

<span “>[\<drive>:][< path>]<filename>[…]

مکان و فایل یا فایل هایی را برای جستجو مشخص می کند. حداقل یک نام فایل مورد نیاز است.

راهنما را در خط فرمان نمایش می دهد.

استفاده از دستورات findstr

1] برای جستجوی کلمه microsoft یا windows در فایل xy باید از:

findstr microsoft windows x.y

2] برای جستجوی کلمه microsoft windows در فایل xy باید از:

findstr /c:"microsoft windows" x.y

در دستور بالا /cبرای جستجوی متن مشخص شده “microsoft windows’ در فایل استفاده می شود.

3] اگر می خواهید در فایل متنی twc.txt موارد کلمه Microsoft را با M بزرگ بیابید، باید از:(Microsoft)

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 Prompt و غیره استفاده کنید. شما باید هر پارامتر و عملکرد آن و همچنین متا کاراکترها و معنای آنها را برای نوشتن نحو و استفاده منظم از دستور findstr درک کنید.

Select-String چیست و پارامترهای آن

تصور کنید(Imagine) در حال نوشتن تکه‌هایی از کد در PowerShell هستید و رشته‌ها و متن خاصی را در آن فایل PowerShell از دست داده‌اید. (PowerShell)شما باید آن را در هزاران خط کد در هزاران رشته و کلمه پیدا کنید. دستور Select-String(Select-String) می آید که به شما امکان می دهد رشته ها و متن را در آن فایل های ورودی PowerShell جستجو کنید. (PowerShell)این شبیه به grep در لینوکس(Linux) است.

Select-String یک cmdlet است که برای جستجوی متن و الگوهای رشته ها و فایل های ورودی استفاده می شود. شبیه grep در لینوکس(Linux) و FINDSTR در ویندوز(Windows) است. هنگامی که از Select-String برای جستجوی متن استفاده می شود، اولین تطابق را در هر خط پیدا می کند و نام فایل، شماره خط و کل خطی که تطابق در آن رخ داده را نشان می دهد. می‌توان از آن برای یافتن چندین مورد منطبق در هر خط یا نمایش متن قبل یا بعد از مسابقه، یا دریافت نتایج در عبارات بولی مانند True یا False استفاده کرد. در دستور استفاده کنید WildCard هایی که در FINDSTR(FINDSTR) استفاده می(WildCards) کنیدمی تواند در 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 یک cmdlet PowerShell است که برای جستجوی متن و الگوها در فایل ها استفاده می شود. در مقایسه با FINDSTR ، Select-String cmdlet قدرتمندتر و پیچیده تر است که اطلاعات زیادی را در مورد مسابقه نمایش می دهد.

معادل PowerShell grep چیست ؟

Select-String معادل PowerShell grep است که در (PowerShell)ویندوز(Windows) موجود است. عملکرد آن به همان روشی است که grep انجام می دهد و با توجه به پارامترهایی که در نحو استفاده می کنیم، اطلاعات دقیقی در مورد تطابق ارائه می دهد.

آیا FINDSTR روی فایل های Word کار می کند؟

بله، FINDSTR روی فایل های Word کار می کند. اما حتی اگر رشته هایی که وارد کرده اید در فایل وجود داشته باشد، نمی تواند موارد منطبق را پیدا کند. به دلایل فنی ناشناخته می‌تواند نتایجی را در فایل‌های باینری با فرمت‌های .doc به شما ارائه دهد، اما نه در قالب‌های docx.

مطالب مرتبط(Related Read) : نحوه بررسی نسخه PowerShell در ویندوز.(How to check the PowerShell version in Windows.)



About the author

من یک توسعه دهنده آیفون و macOS هستم که در هر دو ویندوز 11/10 و جدیدترین پلتفرم iOS اپل تجربه دارم. با بیش از 10 سال تجربه، درک عمیقی از نحوه ایجاد و مدیریت فایل ها در هر دو سیستم عامل دارم. مهارت‌های من فراتر از ساختن فایل‌ها است - من همچنین دانش قوی درباره محصولات اپل، ویژگی‌های آنها و نحوه استفاده از آنها دارم.



Related posts