Findstr: مثال‌ها و نکات استفاده از این ابزار کاربردی CMD Windows

برای افراد ناآشنا، یک ابزار جستجوی الگو مانند findstr ممکن است بی فایده به نظر برسد. اما هنگامی که با فایل‌های گزارش تولید شده توسط سیستم یا خروجی‌های خط فرمان حاوی صدها خط متن سروکار دارید، findstr تنها ابزاری است که به آن نیاز دارید.

کاربران یک سیستم عامل لینوکس(Linux) از قبل با ابزار باورنکردنی دستور Grep آشنا هستند و findstr نقش مشابهی را در ویندوز مایکروسافت(Microsoft Windows) ایفا می کند . می‌توانید با استفاده از لوله‌ها آن را با دستورات دیگر(other commands) ترکیب کنید یا آن را مستقیماً اجرا کنید تا چندین فایل متنی را تجزیه کنید. بیایید با چند مثال به نحوه عملکرد findstr نگاه کنیم.

با استفاده از دستور Findstr

نحو اصلی ساده است - findstr ، جایی کهالگویی برای جستجو است، وآدرس فایلی است که باید در آن جستجو کنید. Command Prompt را باز کنید و آن را امتحان کنید.

findstr SFC example1.txt

این دستور تمام خطوط حاوی رشته جستجوی SFC را پیدا کرده و خروجی می‌دهد . توجه داشته باشید که به طور پیش‌فرض findstr به حروف کوچک و بزرگ حساس است، بنابراین هر گونه ذکر SFC مطابقت نخواهد داشت.

مولفه های

می‌توانید نحوه عملکرد findstr را با اضافه کردن پارامترهای اختیاری بیشتر سفارشی کنید. سوئیچ هایی مانند /B یا /I رفتار findstr را تغییر می دهند و شرایط اضافی را بر جستجو تحمیل می کنند. مثلا:

findstr /I SFC example1.txt

گنجاندن /I به‌عنوان پارامتر، حروف جستجو را غیرحساس می‌کند، و اجازه می‌دهد که همه موارد ذکر شده بدون در نظر گرفتن حروف بزرگ آنها مطابقت داشته باشند. شما می توانید لیست تمام پارامترهای findstr را در اسناد رسمی مایکروسافت(official Microsoft docs) پیدا کنید.

الگوهای اختیاری

پارامترها تنها راهی نیستند که می توانید findstr را سفارشی کنید. برای مثال، قرار دادن <string> در گیومه، به شما امکان می دهد چندین الگو را مشخص کنید و در صورت یافتن هر یک از رشته های متن، یک تطابق به شما می دهد.

findstr "SFC DISM" example1.txt

موارد فوق خطوط منطبق حاوی هر یک از شرایط را برمی گرداند. این باعث می شود زمانی که به دنبال ذکر یک مورد با نام های مختلف هستید مفید باشد.

عبارات با قاعده

Findstr قادر به جستجو در چندین فایل است. در حال تغییربه یک عبارت منظم دستور را به دنبال الگوی مشخص شده در تمام فایل های مطابقت می کند.

findstr SFC *.txt

استفاده از کاراکتر عام، regex را با تمام فایل‌های متنی موجود در فهرست فعلی و زیرشاخه‌های آن مطابقت می‌دهد. نتایج نیز بر اساس نام فایل‌ها تفکیک می‌شوند و به شما امکان می‌دهند ببینید کدام خط از کدام فایل منشا گرفته است.

لوله های

مانند اکثر دستورات cmd، findstr نیز می تواند در خروجی دستورات دیگر استفاده شود. کافیست(Just) بعد از پایان دستور target یک لوله اضافه کنید و findstr را بدون a فراخوانی کنید.

dir | findstr .txt

این یک جستجوی findstr را در خروجی فرمان dir اجرا می‌کند و فهرست فایل‌هایی که با txt ختم می‌شود را برمی‌گرداند . البته، این مثال خاص در عمل بی فایده است، زیرا dir می تواند فایل هایی از همان نوع را با یک عبارت منظم پیدا کند.

همچنین می‌توان مسیر طولانی‌تری را برای تغییر مسیر خروجی به فایل متنی(redirecting the output to a text file) و سپس استفاده از findstr روی فایل متنی انتخاب کرد، اما حذف واسطه آسان‌تر است.

کاربردهای Findstr در ویندوز

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

این، در حالی که از نظر تئوری مفید است، به ندرت خارج از موارد نادر استفاده می شود. در عصر سرویس‌های ابری مانند Google Docs ، بیشتر مردم دیگر فایل‌های متنی زیادی ندارند.

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

یافتن انواع خاصی از فایل ها

دستور dir از قبل شامل گزینه ای برای جستجوی نام فایل ها با استفاده از عبارات منظم است. اما با findstr، می‌توانید فایل‌هایی را جستجو کنید که ویژگی‌های دیگری مانند زمان یا تاریخ ایجاد را دارند.

فرض کنید(Suppose) یک خطا در ساعت 06:43 بعد از ظهر رخ داده است و شما می خواهید همه فایل های گزارش ایجاد شده در آن زمان را پیدا کنید. تنها با دستور dir، باید نتایج را به صورت دستی بررسی کنید یا تمام فایل های گزارش را دریافت کرده و آنها را با هم مقایسه کنید. با استفاده از findstr، این به یک دستور ساده تبدیل می شود.

dir | findstr 06:43

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

dir | findstr DIR

فیلتر کردن اطلاعات شبکه(Network Information) با Netstat

Netstat یک دستور کاربردی ویندوز(Windows) است که تمام اطلاعات مربوط به اتصالات شبکه کامپیوتر شما را در اختیار شما قرار می دهد – اطلاعات بیش از حد، جایی که findstr وارد می شود.

لوله گذاری خروجی netstat در findstr به شما امکان می دهد تا اتصالات با ویژگی های خاص را جستجو کنید. به عنوان مثال، به این ترتیب می توانید لیستی از تمام اتصالات ایجاد شده را دریافت کنید.

netstat | findstr ESTABLISHED

این ترفند هنگام تشخیص مشکلات شبکه مفید است. حتی می توانید از findstr با یک PID برنامه برای یافتن تمام اتصالات باز شده توسط یک فرآیند خاص استفاده کنید.

netstat -o | findstr 13120

دریافت آدرس های IP خاص

دستور ipconfig به شما امکان می دهد جزئیات تمام رابط های شبکه سیستم ها، از جمله آدرس های IP را مشاهده کنید. شما می توانید از findstr برای استخراج نوع خاصی از آدرس IP بدون نیاز به پیمایش در کل موضوع استفاده کنید.

ipconfig | findstr Temporary

شما می توانید این روش را برای به دست آوردن هر گونه اطلاعاتی از ipconfig، از زیر شبکه تا آدرس های دروازه گسترش دهید.

تجزیه و تحلیل فایل های اسکریپت

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

فرض کنید می‌خواهیم(Say) ببینیم که دستور if چگونه در یک اسکریپت خاص استفاده شده است. می توانیم از دستور زیر استفاده کنیم:

findstr if script.ahk

این نه تنها خطوط را با استفاده از دستور if نمایش می دهد، بلکه عبارات استفاده شده را نیز به ما نشان می دهد. همچنین می توانید پارامتر /N را برای نمایش اعداد خط اضافه کنید که برای فایل های اسکریپت بسیار مفید است.

findstr /N if script.ahk

آیا Findstr ارزش استفاده دارد؟

مشکل اصلی در پیمایش رابط خط فرمان، مقدار متنی است که فرد باید از میان آن مرور کند. Findstr یک ابزار ضروری برای استخراج اطلاعات مفید و فیلتر کردن ناخواسته است.

از آنجایی که تمام دستورات ترمینال یک خروجی مبتنی بر متن می دهند، findstr همیشه می تواند برای مکان یابی داده های مربوطه استفاده شود. از عیب‌یابی مشکلات شبکه(troubleshooting network issues) گرفته تا یافتن فایل‌های صحیح، هر اقدامی با findstr کارآمدتر می‌شود.

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

به طور خلاصه، findstr یک ابزار ضروری در زرادخانه هر کاربر پیشرفته ویندوز(Windows) است، به ویژه شخصی که قصد آشنایی با رابط خط فرمان را دارد.



About the author

من یک مهندس نرم افزار و وبلاگ نویس با نزدیک به 10 سال تجربه در این زمینه هستم. من در ایجاد بررسی ابزارها و آموزش‌ها برای پلتفرم‌های مک و ویندوز، و همچنین ارائه نظرات تخصصی درباره موضوعات توسعه نرم‌افزار تخصص دارم. من همچنین یک سخنران و مدرس حرفه ای هستم و در کنفرانس های فناوری در سراسر جهان ارائه کرده ام.



Related posts