این نکته بر اساس نکته ای با عنوان استفاده از فایل های دسته ای، قسمت 1 است، بنابراین ممکن است بخواهید قبل از ادامه آن را بررسی کنید. به طور خاص، ما با فایلی به نام "C:BatFun.bat" کار می کنیم، بنابراین یک پنجره خط فرمان نمایش داده و دایرکتوری پیش فرض خود را به C:Bat تغییر دهید. دفترچه یادداشت را برای ویرایش Fun.bat راه اندازی کنید که در حال حاضر به شکل زیر است:
@ECHO OFF REM This file demonstrates the use of a few command-line statements ECHO Hello. This is my Fun.bat file. DIR %1
آخرین دستور موجود در فایل دستور DIR است. فهرستی از پوشه مشخص شده به عنوان اولین پارامتری که به فایل دسته ای ارسال شده است را ایجاد می کند. اگر نمیخواهید فهرست روی صفحه نمایش داده شود، میتوانید از کاراکتر ">" برای هدایت خروجی به یک فایل استفاده کنید. بنابراین اجازه دهید Fun.bat را تغییر دهیم تا دو پارامتر را بپذیرد. اولی پوشه ای است که لیست دایرکتوری آن را می خواهید بدست آورید و دومی فایلی است که می خواهید این خروجی در آن قرار گیرد. فایل دسته ای شما باید به شکل زیر باشد:
@ECHO OFF REM This file demonstrates the use of a few command-line statements ECHO Hello. This is my Fun.bat file. DIR %1 > %2
شما مانند قبل فراخوانی می کنید به جز اینکه اکنون پارامتر دوم را در خط فرمان مشخص می کنید:
C:Bat> Fun.bat C:Temp C:TempDirlist.txt
فایل دسته ای را اجرا کنید و در نهایت فایلی به نام C:TempDirlist.txt خواهید داشت که فهرست دایرکتوری همه فایل های دایرکتوری C:Temp را نگه می دارد.
بگویید که هزاران فایل در دایرکتوری C:Temp خود دارید. به جای مرور لیست طولانی، ممکن است فقط بخواهید بدانید که آیا یک فایل خاص در آن وجود دارد و چقدر بزرگ است. شما می توانید این کار را با "لوله گذاری" خروجی دستور DIR به یک دستور جدید، FIND انجام دهید.
به طور کلی، اکثر دستوراتی که دادههای خروجی تولید میکنند (مانند آنچه که توسط DIR تولید میشود) میتوانند به عنوان ورودی برای فرمان دیگری استفاده شوند - همه در یک خط. این "لوله کشی" نامیده می شود و کاراکتر مورد استفاده برای این عملیات نوار عمودی ("|") است. دستور انتظار ورودی، FIND در مورد ما، در سمت راست کاراکتر "pipe" (نوار عمودی) ظاهر می شود. بنابراین بیایید دستور قبلی DIR خود را با دستوری جایگزین کنیم که خروجی آن را به FIND می رساند:
@ECHO OFF REM This file demonstrates the use of a few command-line statements ECHO Hello. This is my Fun.bat file. DIR %1 | FIND "Dirlist"
اثر این تغییر اجرای دستور DIR در پوشه مشخص شده است، اما خروجی آن را به دستور FIND ارسال می کند، که به نوبه خود آن خروجی را برای رشته "Dirlist" جستجو می کند و نتایج را به صفحه نمایش می دهد. توجه داشته باشید که ما فقط یک پارامتر را ارسال می کنیم - نام پوشه ای که روی آن DIR انجام می شود. اگر فراموش کردید و پارامتر دوم را مشخص کردید، مشکلی نیست. از آنجایی که "% 2" در فایل دسته ای وجود ندارد، هر پارامتر اضافی نادیده گرفته می شود.
آخرین چیزهایی که در این نکته باید پوشش داده شود، مربوط به زمان است. دستوری به نام "TIME / T" وجود دارد که زمان فعلی را نشان می دهد. همچنین دستوری به نام TIMEOUT وجود دارد که باعث می شود کار دسته ای برای تعداد ثانیه معین متوقف شود. در نهایت، یک کاراکتر خاص دیگر وجود دارد که میتوانید در یک فایل دستهای از آن استفاده کنید، یعنی علامت علامت ("&"). این دو (یا بیشتر) فرمان هایی را که در یک خط ظاهر می شوند به هم متصل می کند. بیایید از این دستورات برای نمایش زمان فعلی استفاده کنیم، پنج ثانیه صبر کنیم و زمان جدید را روی صفحه بنویسیم. فایل دسته ای باید به شکل زیر باشد:
@ECHO OFF REM This file demonstrates the use of a few command-line statements ECHO Hello. This is my Fun.bat file. DIR %1 | FIND "Dirlist" ECHO The current time is & TIME /T TIMEOUT 5 ECHO The new current time is & TIME /T
این کمی بیشتر در مورد فایل های دسته ای است. کارهای بیشتری وجود دارد که آنها می توانند انجام دهند، اما من می خواهم قبل از نوشتن بیشتر در مورد آنها میزان علاقه را بسنجم. اگر تمایل دارید، لطفاً در نظرات، در زیر، مشخص کنید که آیا میخواهید درباره فایلهای دستهای اطلاعات بیشتری کسب کنید یا خیر.