در نرم‌افزارهای مختلف ویندوز برای اینکه کلمه یا عبارتی را پیدا کنیم، بهترین روش استفاده از شورت‌کات Ctrl + F برای نمایش پنجره‌ی Find یا Search است. اما اگر بخواهید خروجی طولانی یک دستور ساده در پنجره‌ی cmd را بررسی کنید و کلمه‌ی موردنظر را در آن پیدا کنید، دستور مفیدی به اسم findstr انتخاب بهتری است.

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

دستور Findstr یکی از ابزارهای پیش‌فرض در سیستم عامل مایکروسافت ویندوز و محیط cmd است و کاربرد آن پیدا کردن متن است. با استفاده از findstr می‌توان خطوطی که خروجی یک دستور یا فرآیند است را فیلتر و محدود کرد و به همراه شماره‌ی خط چاپ کرد. علاوه بر این به کمک findstr می‌توان فایل یا فایل‌ها و یا یک فولدر پر از فایل‌های مختلف را برای یافتن کلمه یا عبارت دلخواه جست‌وجو کرد و حتی از Regex برای یافتن عبارت‌هایی که ساختار خاصی دارند، استفاده کرد.

قبل از هر چیز برای اجرا کردن cmd می‌توان از قابلیت جست‌وجو در منوی استارت و یا پنجره‌ی Run استفاده کرد. به عبارت دیگر کلید میانبر Windows + R را فشار دهید و سپس cmd را تایپ کرده و کلید Enter را فشار دهید تا cmd باز شود.

برای آشنایی بیشتر با تمام سوییچ‌های این دستور، در پنجره‌ی cmd عبارت زیر را تایپ کرده و Enter را فشار دهید:

findstr /?

همان‌طور که در تصویر مشاهده می‌کنید، لیستی از سوییچ‌ها و کاربرد هر یک نمایان می‌شود:

موارد مهم و کاربردشان به صورت زیر است:

  • /? برای نمایش راهنما
  • /S برای جستجو کردن در یک فولدر و تمام فولدرهای داخل آن
  • /I برای سرچ کردن با در نظر گرفتن اهمیت بزرگ و کوچک بودن حروف
  • /R برای سرچ کردن عبارت‌های منظم یا Regex
  • /B برای پیدا کردن مواردی که در ابتدای خطوط هستند
  • /P برای نادیده گرفتن فایل‌هایی که کاراکترهای غیرقابل‌چاپ دارند
  • /V برای چاپ کردن خطوطی که شامل کلمه یا عبارت سرچ شده هستند
  • /N برای چاپ کردن شماره‌ی خطوط

در ادامه به توضیحات بیشتر در مورد روش استفاده می‌پردازیم.

استفاده کردن از findstr در cmd ویندوز برای سرچ کردن متن

به مثال‌هایی زیر توجه کنید تا استفاده از دستور findstr در cmd ویندوز برایتان ساده و روشن شود:

اگر بخواهیم در خروجی دستور ipconfig که شناسه‌ی IP کارت‌های شبکه را به همراه مشخصات دیگر لیست می‌کند، عبارت 192.168 را پیدا کنیم، دستور زیر کاربرد دارد:

ipconfig | findstr "192.168"

برای اطلاعات تکمیلی در مورد ipconfig‌ به مقالات قبلی مراجعه کنید:

برای اجرا کردن دستور netstat و یافتن ‌شناسه‌ی IP خاصی مثل 123.123.123.13 از دستور زیر استفاده کنید:

netstat | findstr "123.123.123.13"

برای جست‌وجو کردن در درایو C و فایلی متنی به اسم windows.txt و یافتن عبارت windows 10 از دستور زیر استفاده کنید:

findstr /c:"windows 10" windows.txt

و برای یافتن کلمه‌ی windows یا 10 در فایل، از دستور زیر استفاده کنید:

findstr "windows 10" windows txt

دستور بعدی برای یافتن کلمه‌ی windows در تمام فایل‌ها و فولدرهایی که در مسیر C:\documents قرار دارند، کاربرد دارد:

findstr "windows" c:\documents\*.*

به عبارت دیگر به جای تمام فایل‌ها از *.* استفاده می‌شود.

اما به مثال دیگری با فعال بودن حساسیت به بزرگی و کوچکی حروف توجه کنید: برای یافتن کلمه‌ی Windows در تمام فایل‌ها در فولدر فعلی و تمام فولدرهای داخل فولدر فعلی، از دستور زیر استفاده می‌شود که در آن دو سوییچ /s و /i به ترتیب برای سرچ کردن فولدرهای زیرمجموعه و مهم کردن بزرگ و کوچکی حروف استفاده شده است:

findstr /s /i Windows *.*

دستور بعدی یک دستور پیچیده‌تر با سوییچ‌های بیشتر است که برای بازگردانی هر خط از خروجی که ابتدای آن کلمه‌ی FOR ذکر شده و در ادامه ۰ یا تعداد بیشتری اسپیس وجود دارد، استفاده می‌شود.

findstr /b /n /r /c:"^ *FOR" *.bas

توجه کنید که سوییچ /b به قرار گرفتن در ابتدای خط و سوییچ /n برای پرینت کردن شماره‌ی خط و سوییچ /r برای جستجو کردن Regex در ادامه‌ی دستور findstr به کار رفته است. بنابراین باید با عبارت‌های منظم یا ریجکس آشنایی قبلی داشته باشید.

در پایان مطالعه کردن مقالات زیر را به کسانی که می‌خواهند حرفه‌ای‌تر از cmd استفاده کنند، توصیه می‌کنیم: