دستور "Find" معمولاً برای اکثر نیازهای شما کافی است (به نکته ای با عنوان استفاده از فرمان Find مراجعه کنید)، اما یک دستور "Findstr" نیز وجود دارد که برای مواقعی که در شرایط خاصی نیاز به یافتن رشته ها دارید، قدرتمندتر است. در ساده ترین شکل، Findstr شبیه Find است:
C:> FINDSTR "document" Barry?.tmp
Findstr چندین سوئیچ بیشتر از Find می پذیرد و با تایپ کردن موارد زیر می توانید لیست کاملی را مشاهده کنید:
C:> FINDSTR /?
اولین تفاوتی که بین خروجی Find در مقابل Findstr مشاهده خواهید کرد این است که دومی هر خط پیدا شده را با نام فایلی که در آن یافت می شود پیشوند می دهد: (شکل 1 را ببینید.)
شکل 1. Findstr نام فایل ها را در یک ردیف با رشته یافت شده نمایش می دهد.
بیش از دوجین سوئیچ با Findstr موجود است، اما به جای مرور همه آنها، من فقط برخی از مهمترین توابع (imo) موجود در دستور Find را به شما میگویم. اولین چیزی که به آن اشاره می کنم این است که می توانید همزمان چندین رشته را جستجو کنید. اگر رشته جستجویی که به دنبال آن هستید حاوی فاصله باشد، Findstr فرض میکند که میخواهید string1 یا string2 یا string3 و غیره را پیدا کنید. به عنوان مثال، اگر میخواهید تمام خطوطی را که حاوی "document" یا "text" هستند را پیدا کنید، فقط باید آن را جدا کنید. کلمات با فاصله مانند: (شکل 2 را ببینید.)
شکل 2. جستجوی دو رشته همزمان.
یکی دیگر از ویژگی های خوب این است که Findstr می تواند فایل ها را در زیر شاخه ها جستجو کند. فرض کنید من Barry1.tmp را در دایرکتوری Temp و Barry2.tmp را در فهرست TempTemp2 خود دارم. از دایرکتوری Temp می توانم از سوئیچ "/S" استفاده کنم تا به Findstr بگویم زیر شاخه ها را جستجو کند. به نظر می رسد این است: (شکل 3 را ببینید.)
شکل 3. استفاده از /S برای جستجوی زیر شاخه ها.
عملکردهای بسیار بیشتری وجود دارد که می توانم به شما نشان دهم، اما آخرین مورد واقعاً توجه ویژه ای دارد. این مفهوم جستجو با استفاده از عبارات منظم است. "مقدمه ای بر عبارات با قاعده" در زیر یک نکته دیگر پوشش داده شده است، اما من می خواهم به شما نشان دهم که چگونه می توان از یک عبارت منظم در Findstr استفاده کرد.
فرض کنید می خواهید کلمه "سند" را جستجو کنید، اما فقط مواردی را جستجو کنید که با علامت نگارشی مانند کاما یا نقطه دنبال می شوند. عبارت معمولی برای این نوع جستجو "document[,.]" است. شما به Findstr نشان میدهید که رشته جستجوی شما با تعیین سوئیچ "/R" از یک عبارت منظم استفاده میکند، و اجازه دهید سوئیچ "/N" را اضافه کنیم تا اعداد خطوط را ببینیم. چیزی که در نهایت به آن می رسید این است: (شکل 4 را ببینید.)
شکل 4. جستجو با استفاده از یک عبارت منظم.
هنوز چیزهای بیشتری برای Findstr وجود دارد، اما امیدوارم اشتهای شما را به اندازه کافی افزایش داده باشم تا زمانی که نیاز به جستجوی جالب رشته ها در فایل ها دارید، از آن استفاده کنید.