نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی
  • خانه
  • برنامه ها
  • دستورات فایل خفاش (ویندوز). چگونه یک فایل با پسوند bat ایجاد کنیم؟ این فایل ها برای چیست؟

دستورات فایل خفاش (ویندوز). چگونه یک فایل با پسوند bat ایجاد کنیم؟ این فایل ها برای چیست؟

در این مقاله:

  • تعریف متغیرها
  • متغیرهای خط فرمان (پارامترهای فراخوانی فایل خفاش)
  • اپراتور شرطی IF
  • کارکرد
  • استفاده از مقادیر بازگشتی (پردازش کد خروج)

تعریف متغیرها

تنظیم<Имяпеременной>=<Значениепеременной>

دستور SET توسعه توانایی سیستم عامل برای دستکاری پارامترها است. متغیری را مشخص می کند که هر زمان که آن نام بین علامت های درصد استفاده شود، مقدار آن جایگزین نام آن می شود. بنابراین، اگر داده شود (متغیری که بسیاری از بازی هایی که از کارت صدای رایانه استفاده می کنند نیاز دارند):

SET BLASTER=A220 I5 D1 P330

سپس هنگام استفاده از ساختار زیر در یک فایل دسته ای:

ECHO %BLASTER%

"A220 I5 D1 P330" روی صفحه نمایش داده می شود. متغیرهایی که با استفاده از دستور SET تعریف می شوند، متغیرهای محیطی نامیده می شوند و پس از اجرا تا زمانی که DOS راه اندازی مجدد نشود، قابل مشاهده هستند (مگر اینکه به صورت دستی در حافظه تغییر داده شود). یعنی می توان از یک فایل یا برنامه دسته ای پس از مشخص شدن در دیگری استفاده کرد. معروف ترین آن متغیر PATH است که مجموعه ای از مسیرها برای جستجوی سریع فایل ها است. در فایل autoexec.bat تنظیم شده است.

متغیرهای خط فرمان
(پارامترهای فراخوانی فایل bat)

%<цифра 0-9>

مانند هر زبان دیگری، در زبان فایل دسته ای نیز می توان از متغیرهای دریافتی به عنوان پارامترهای فایل bat استفاده کرد.

در مجموع می توان 10 متغیر مستقل به طور همزمان وجود داشته باشد. این برای نوشتن برنامه های پیچیده بسیار کوچک است، اگرچه 3-4 اغلب برای کارهای معمولی کافی است. مقدار متغیر برابر با مقدار پارامتر مربوطه از خط فرمان است. متغیر %0 حاوی نام فایل bat. و اگر آن را مشخص کرده اید، مسیر دسترسی به آن را خواهد داشت. یعنی اگر فایل abc.bat را با پارامترهای زیر اجرا کنید:

abc.bat a bc def

سپس متغیر %0 حاوی مقدار abc.bat، %1 حاوی مقدار a، %2 حاوی bc و %3 حاوی def خواهد بود. این ویژگی به طور گسترده ای برای ایجاد فایل های دسته ای همه کاره در هنگام برخورد با عملیات های تکراری استفاده می شود.

برای دریافت بیش از 10 متغیر از خط فرمان، می توانید از دستور SHIFT استفاده کنید.

دستور SHIFT به شما اجازه می دهد تا از بیش از 10 پارامتر خط فرمان استفاده کنید، اما پارامترهای قبلی مربوطه از بین می روند. به عبارت دیگر، دستور SHIFT تمام مقادیر متغیرها را یک قدم به سمت چپ جابه‌جا می‌کند. یعنی متغیر % 0 حاوی مقداری است که قبلاً در متغیر % 1 موجود بود و متغیر % 1 حاوی مقدار متغیر % 2 قبل از شیفت خواهد بود. با این حال، این عملیات برگشت ناپذیر است، یعنی غیرممکن است که متغیرها را به عقب برگردانید.

اپراتور شرطی IF

خوشبختانه، مفسر دستور cmd.exe ویندوز 2000 و نسخه های جدیدتر از بلوک های فرمان در ساختارهای انشعاب پشتیبانی می کند و نیازی به IF های دارای برچسب را از بین می برد. بلوک های فرمان در داخل پرانتز قرار می گیرند. به نظر می رسد (تقلید از سبک تورفتگی C/C++):

اگر شرط (

Rem Commands شاخه 'then'

رم...

) دیگر (

Rem Commands شاخه ‘else’

رم...

مثال استفاده خاص:

@echo خاموش

BUILDMODE=%1 را تنظیم کنید

اگر "%BUILDMODE%" == "" (

Echo FAIL: آرگومان مورد نیاز است ^(--debug، --release^)

خروج /b 1

rem تمام خط تیره ها را از آرگومان حذف کنید تا پردازش را ساده کنید

تنظیم BUILDMODE=%BUILDMODE:-=%

if "%BUILDMODE%" == "اشکال زدایی" (

CCFLAGS=/Od /MDd /Z7 را تنظیم کنید

) دیگر (

CCFLAGS=/O2 /MD را تنظیم کنید

به نظر من، زندگی با این کاملاً ممکن است. اما، مثل همیشه، زندگی آنقدرها هم که به نظر می رسد ساده نیست. یک مشکل وجود دارد. متغیرهای مورد استفاده در بلوک‌های then and else قبل از شروع اجرا بسط می‌شوند، نه در حین اجرا. در مثال بالا این مشکلی ایجاد نمی کند، اما در ادامه این کار باعث می شود:

if "%BUILDMODE%" == "اشکال زدایی" (

Echo INFO: تنظیم حالت محیط اشکال زدایی

OPTFLAGS=/Od را تنظیم کنید

CCFLAGS=%OPTFLAGS% /MDd /Z7 را تنظیم کنید

) دیگر (

Echo INFO: تنظیم حالت انتشار محیط

OPTFLAGS=/O2 را تنظیم کنید

CCFLAGS=%OPTFLAGS% /MD را تنظیم کنید

نکته مهم این است که در هر دو بلوک، جایگزینی متغیر OPTFLAGS قبل از تغییر در طول اجرای آن بلوک اتفاق می‌افتد. بر این اساس، CCFLAGS با مقداری که OPTFLAGS در زمان اجرای این بلوک داشت پر می شود.

این مشکل با استفاده از بسط متغیر تاخیری حل می شود. متغیرهای موجود در !…! به جای %...%، معانی آنها فقط در لحظه استفاده مستقیم آشکار می شود. این حالت به طور پیش فرض غیرفعال است. می توانید آن را با استفاده از کلید /V:ON هنگام فراخوانی cmd.exe یا با استفاده از دستور فعال کنید:

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

با این گفته، مثال قبلی "اشتباه" را می توان به این صورت اصلاح کرد:

setlocal enableddelayedexpansion

if "%BUILDMODE%" == "اشکال زدایی" (

Echo INFO: تنظیم محیط حالت اشکال زدایی

OPTFLAGS=/Od را تنظیم کنید

تنظیم CCFLAGS=!OPTFLAGS! /MDd /Z7

) دیگر (

Echo INFO: تنظیم محیط حالت انتشار

OPTFLAGS=/O2 را تنظیم کنید

تنظیم CCFLAGS=!OPTFLAGS! /MD

اکنون این تقریباً یک بلوک تمام عیار است. تقریباً، زیرا اگر در یکی از دستورات echo با پرانتز بسته شدن مواجه شدید، باید با کاراکتر ^ از آن فرار کنید، در غیر این صورت تجزیه کننده گیج می شود ...

اما در هر صورت، این بسیار بهتر از تعداد دیوانه کننده تگ ها و انتقال ها است.

کارکرد

آیا امکان ایجاد تابع در فایل bat وجود دارد؟ بله، تو میتونی. علاوه بر این، گاهی اوقات حتی ضروری است. درست است، اینها را می توان توابع مشروط نامید.

یک دستور ویژه برای دستور تماس وجود دارد که به شما امکان می دهد به علامتی در همان فایل bat بروید و مکانی را که این تماس از آنجا برقرار شده است را به خاطر بسپارید:

آرگومان های call:label

تابع با دستور برگردانده می شود:

خروج /b [کد بازگشتی اختیاری]

کلید /b در اینجا بسیار مهم است: بدون آن، شما نه از تابع، بلکه به طور کلی از اسکریپت خارج خواهید شد.

برای جزئیات، در خط فرمان تایپ کنید:

زنگ زدن/؟

خروج /؟

جالب توجه است که دستور فراخوانی با این نحو از فراخوانی های بازگشتی با ایجاد خودکار یک فریم جدید برای آرگومان های متغیر %0-%9 پشتیبانی می کند. گاهی اوقات این می تواند مفید باشد. در اینجا یک مثال کلاسیک از محاسبه فاکتوریل بازگشتی در زبان دستور آمده است:

@echo خاموش

فراخوانی: عاملی % 1

اکو %RESULT%

خروج

تابع rem برای محاسبه مقدار فاکتوریل

rem ورود:

rem % 1 عددی که می خواهید فاکتوریل را برای آن محاسبه کنید

خروجی rem:

rem %RESULT% مقدار فاکتوریل

: فاکتوریل

اگر %1 == 0 (

RESULT=1 را تنظیم کنید

خروج /b

اگر %1 == 1 (

RESULT=1 را تنظیم کنید

خروج /b

/a PARAM=%1 - 1 را تنظیم کنید

فراخوانی: عاملی %PARAM%

تنظیم /a RESULT=%1 * %RESULT%

خروج /b

نمونه کار:

> factorial.bat 10

3628800

استفاده از مقادیر بازگشتی
(در حال پردازش کد خروج از برنامه)

هنگامی که هر برنامه ای کار خود را کامل می کند، کد پایان خود را به سیستم عامل برمی گرداند. مرسوم است که پس از تکمیل موفقیت آمیز صفر را برگردانید، در غیر این صورت یک کد خطا. گاهی اوقات، یا بهتر بگوییم اغلب، یک برنامه "عمدا" یک مقدار غیر صفر برمی گرداند تا بتوان برخی از جزئیات عملکرد آن را در فایل دسته ای "یادگیری" کرد. به عنوان مثال، برنامه کد کلید فشرده شده را برمی گرداند و فایل bat. بر اساس آن اقدامات مختلفی را انجام می دهد.

چگونه یک فایل دسته ای می تواند کد خروجی برنامه اجرا شده را پیدا کند؟ متغیر کلید ERRORLEVEL برای این منظور ارائه شده است.

نمونه ای از یک فایل دسته ای با سطوح خطا:

@ECHO OFF

REM برنامه prg1.exe را اجرا کنید

PRG1.EXE

تجزیه و تحلیل کد تکمیل REM

IF ERORLEVEL 2 GOTO FILENOTFOUND

IF ERORLEVEL 1 GOTO WRITEERROR

IF ERORLEVEL 0 GOTO EXITOK

GOTO ONEXIT

:FILENOFOUND

خطای ECHO! فایل پیدا نشد!

GOTO ONEXIT

: WRITEERROR

خطای ضبط ECHO!

GOTO ONEXIT

: EXITOK

ECHO برنامه با موفقیت به پایان رسید.

GOTO ONEXIT

:ONEXIT

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

این رایج ترین خطا در این نوع برنامه هاست.

فایل های BAT اسناد متنی هستند که پسوند خاصی دارند. دستورات برای اجرای بعدی در خط فرمان در آن نوشته می شوند. با اجرای فایل، برنامه CMD را فعال می کنید، دستوراتی که به صورت متوالی اجرا می شوند را می خواند. به این ترتیب می توانید با حفظ نظم دلخواه کار با خط فرمان را آسان تر کنید. البته، می توانید همه دستورات را به طور همزمان در خط فرمان به صورت دستی وارد کنید، با این حال، در صورت نیاز به تکرار همان عملیات، انجام این کار با خواندن خودکار لیست نوشته شده در قالب یک سند خفاش بسیار راحت تر است. این گزینه همچنین کاربردی و راحت است زیرا می توانید متعاقباً ترتیب را تغییر دهید، فرآیندهای جدیدی را که نیاز دارید اضافه کنید و همچنین موارد غیر ضروری را حذف کنید.

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

کار با خفاش با استفاده از Notepad

الگوریتم ایجاد

روند کار از طریق Notepad اصلاً پیچیده نیست. اگر قبلا این کار را انجام نداده اید، می توانید با یادگیری نحوه ایجاد یک فایل bat و اضافه کردن دستورات به آن، به خوبی از پس آن برآیید. بیایید با خلقت شروع کنیم. در اینجا، الگوریتم را به شدت دنبال کنید:

  1. هنگامی که یک سند متنی ایجاد می کنید، ابتدا آن را با پسوند txt دریافت خواهید کرد. روش های مختلفی برای انجام این عملیات وجود دارد که برخی از آنها به سطح ویندوزی که نصب کرده اید بستگی دارد:
    • در پوشه ای که انتخاب کرده اید، روی فیلد کلیک راست کنید، یک منو باز می شود، در آنجا "ایجاد" - "سند متن" را انتخاب می کنیم.
    • "Notepad" را از طریق "Start" با انتخاب "All Programs" - "Accessories" - "Notepad" (برای Windows 7) راه اندازی کنید.
    • در نسخه های بعدی (بعد از 7) ویندوز، می توانید "Notepad" را از طریق "Start" باز کنید: از طریق "All Apps" و سپس "Accessories" - "Windows" بروید و در آنجا "Notepad" را از لیست انتخاب کنید.
    • پنجره فرمان سیستم را با استفاده از ترکیب Win + R باز کنید، "notepad" را در خط وارد کنید، روی "Ok" کلیک کنید.
  2. متن دستور را وارد کنید. برای امتحان، به عنوان مثال، "START taskmgr.exe" را یادداشت کنید - مدیر وظیفه را شروع کنید. "START" به مفسر فرمان می گوید که یک برنامه باید راه اندازی شود، سپس فایل اجرایی برنامه نشان داده می شود.
  3. مسیر ذخیره سند ایجاد شده را مشخص کنید.
  4. در پنجره ذخیره مشخص کنید:
    • در خط "نوع" - "همه فایل ها"؛
    • در خط "Name"، نام و پسوند bat را وارد کنید، آن را بعد از نام اضافه کنید، یک نقطه بین نام و پسوند، به عنوان مثال، "file.bat" قرار دهید.
  5. روی "ذخیره" کلیک کنید.

یک فایل دسته ای با پسوند bat. در پوشه ای که شما مشخص کرده اید ظاهر می شود.

اجرای یک فایل

باز کردن فایل bat با دوبار کلیک کردن روی آن با ماوس آسان تر است. روش دوم راه اندازی از خط فرمان است: آدرسی را وارد کنید که سند با پسوند bat که ذخیره کرده اید در آن قرار دارد.

ویرایش

اگر می خواهید سند را تغییر دهید - دستورات را به فایل bat اضافه کنید، برخی از آنها را حذف کنید، برنامه دیگری را وارد کنید تا بعداً با آن کار کنید - انجام این کار دشوار نیست. سند را با استفاده از یک ویرایشگر متن باز کنید. انجام این کار با کلیک راست بر روی فایل bat و انتخاب "Edit" در منوی باز شده راحت است. دفترچه یادداشت راه اندازی می شود - در آنجا می توانید دستورات را ویرایش کنید، محتوا را تغییر دهید و اضافات ایجاد کنید.

کاربرد Dr.Batcher

برای یک مبتدی که تازه شروع به کار با مفسر دستور می کند و به ندرت از آن استفاده می کند، Notepad کافی است. اگر می خواهید به سطح حرفه ای بالاتری برسید، توصیه می کنیم از ابزار Dr.Batcher استفاده کنید. در Dr.Batcher می توانید صفحات را شماره گذاری کنید، پشتیبانی از نشانک ها وجود دارد، لیستی از دستورات سیستم استفاده شده در bat، دستورات وارد شده برجسته می شوند.

ایجاد یک سند

الگوریتم ساده است و نیازی به مهارت یا حرفه ای بودن ندارد. پس از دانلود ابزار، می توانید به سرعت هر کاری را که نیاز دارید انجام دهید.

Dr.Batcher را راه اندازی کنید.

  1. صفحه جدیدی را باز کنید: "File" - "New" یا روی نماد برگه خالی واقع در زیر منوی "File" کلیک کنید.
  2. در کادر محاوره ای، روی "Empty Batch File" کلیک کنید.
  3. یک پنجره برنامه حاوی توابعی برای کار با bat ظاهر می شود.
  4. پس از وارد کردن متن مورد نیاز، ذخیره کنید.

ویرایش

اگر نیاز به تغییر فایل bat دارید، این کار را می توان به چند روش در Dr.Batcher انجام داد:

  1. روی نماد کلیک راست کرده و از منو گزینه Edit with Dr.Batcher را انتخاب کنید.
  2. Batcher را راه اندازی کنید. فایل bat مورد نظر را با دنبال کردن مسیر زیر باز کنید:
  • "فایل"؛
  • "باز کن"؛
  • مسیر سند را مشخص کنید.
  • "باز کن".

با دنبال کردن یکی از مسیرهای پیشنهادی، ابزار را باز می کنید؛ متنی در پنجره وجود دارد که می توانید تنظیمات را انجام دهید، دستورات را تغییر دهید، آنها را تکمیل کنید و موارد غیر ضروری را حذف کنید.

فایل bat زمانی مفید است که شما نیاز به خودکارسازی وظایف در ویندوز دارید. به خصوص اگر لازم باشد اقدامات در یک الگوریتم خاص چندین بار (به صورت دوره ای یا پشت سر هم) انجام شود. این معمولاً هنگام ایجاد یک سیستم دایرکتوری، تغییر نام انبوه فایل ها و سایر عملیات ساده و پیچیده تر مورد نیاز است. با ذخیره کردن ترتیب اقدامات، می توانید به سرعت و بدون اتلاف وقت در وارد کردن دستی دستورات، می توانید فرآیند را در هر زمان شروع کنید، آن را برای برنامه های مختلف تکرار کنید و فقط نام آنها را در متن تمام شده وارد کنید. توصیه هایی در مورد نحوه ساخت یک فایل خفاش که در بالا ذکر شد به شما کمک می کند نه تنها آنها را خودتان بسازید، بلکه آنها را ویرایش کنید.

هر کسی می تواند فایل های خفاش بنویسد!

پردازنده فرمان

بسیاری از سیستم عامل ها، از جمله سیستم عامل های توسعه یافته توسط مایکروسافت، شامل یک پردازنده فرمان هستند. این نام برنامه ای است که در پاسخ به دستورات وارد شده توسط کاربر از صفحه کلید شروع به اجرای اقدامات مختلف می کند. اساساً این اقدامات شامل راه اندازی برنامه های لازم با پارامترهای خاص است. اما نه تنها؛ بعداً خواهیم دید که برخی از دستورات مستقیماً توسط پردازشگر فرمان اجرا می شوند. اساساً، اینها دستوراتی هستند که برای کنترل زمینه و توالی اجرای دستور عمل می کنند. با این حال، ما در مورد ماهیت دستورات خیلی عمیق فکر نمی کنیم، حداقل مگر اینکه مجبور باشیم. مهمتر از آن، هر برنامه ای که از نظر فنی امکان اجرا از خط فرمان را داشته باشد، توسط پردازشگر فرمان به عنوان یک فرمان در نظر گرفته می شود. تفاوتی بین دستورات بومی که در ابتدا در سیستم عامل ساخته شده بودند و برنامه هایی که در بالای آن نصب شده بودند، قائل نمی شود.

برای راه اندازی پردازشگر فرمان:

    روی دکمه کلیک کنید شروع کنید. منوی اصلی روی صفحه نمایش داده می شود.

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

    در قسمت Open، رشته را وارد کنید cmd.

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

خط فرمان و دستورات

پنجره پردازشگر فرمان در شکل اصلی خود غم انگیز به نظر می رسد و کار با آن برای اکثر افراد خیلی راحت نیست. استفاده از فایل منیجرهای سبک Norton Commander بسیار ساده تر است. آنها هر دو ابزار را برای پیمایش سریع سیستم فایل و زمان بندی برای وارد کردن دستورات فراهم می کنند.

برای وارد کردن دستور:

    متن فرمان را در خط فرمان تایپ کنید.

    کلید را فشار دهید وارد.

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

اگر سعی کردید دستور را وارد کنید کمک، احتمالاً متوجه شده اید که نتیجه کار آن (به اصطلاح خروجی) روی یک صفحه قرار نمی گیرد. همین مشکل در متن توضیحات دستور رخ می دهد برای. خبر خوب این است که خروجی را می توان به یک فایل هدایت کرد. خط فرمان نشان داده شده در لیست زیر فایل را تولید می کند commands.txt، حاوی لیستی از تمام دستورات MS-DOS است.

help > commands.txt

به منظور ایجاد یک فایل با شرح دستور برای، باید دستور زیر را بدهید (می توانید نام فایل خروجی را هر چیزی بسازید).

کمک برای > for.txt

در کل کمی کمتر از 80 دستور در سیستم عامل های مدرن مایکروسافت وجود دارد و توصیف آنها در یک مقاله غیرممکن است. در اینجا فقط می توانیم به چند دستور مفید برای خودکارسازی پردازش فایل اشاره کنیم و نحوه استفاده از آنها را نشان دهیم. این دستورات در مثال های بعدی مورد استفاده قرار خواهند گرفت. شما همیشه می توانید جزئیات را با دستور روشن کنید کمکیا در دایرکتوری

کپی 🀄- کپی کردن یک یا چند فایل

دل- حذف یک یا چند فایل؛

حرکت- انتقال یک یا چند فایل یا دایرکتوری؛

تغییر نام دهید(به اختصار رن) - تغییر نام یک یا چند فایل یا دایرکتوری.

xcopy- کپی کردن درخت شاخه فرعی؛

mkdir(به اختصار md) - ایجاد یک فهرست؛

rmdir(به اختصار rd) - حذف یک دایرکتوری.

یکی از قوانین کلی دستور MS-DOS این است که هنگام تعیین پارامترها ابتدا منبع و سپس نتیجه مشخص می شود. مثلا اگر بخواهیم فایلی را جابجا کنیم beer.txtاز کاتالوگ جعبهبه کاتالوگ جدول، باید دستور داده شده در لیست زیر را وارد کنیم.

جدول انتقال جعبه\beer.txt

اول چی حرکت کنیم بعد کجا حرکت کنیم.

اگر بخواهیم نام فایل را تغییر دهیم lena.txtبرای تشکیل پرونده natasha.txt، سپس دستور باید مطابق شکل زیر نوشته شود.

رن lena.txt natasha.txt

اول، چه چیزی را تغییر نام دهیم، سپس چه چیزی را تغییر نام دهیم.

پوشه کنونی. مسیرهای مطلق و نسبی

هنگام کار با دستورات فایل، مفهوم دایرکتوری فعلی بسیار مهم می شود. نکته این است که هنگام تعیین یک فایل به عنوان پارامتر فرمان، همیشه از یکی از دو روش ممکن برای اشاره به آنها استفاده می کنیم: مسیر مطلق یا مسیر نسبی. در مسیر کامل ما همه چیزهایی را که برای مثال با درایو (یا نام شبکه کامپیوتر) شروع می شود، مشخص می کنیم d:\misha\box\beer.txt. هر دایرکتوری که هنگام وارد کردن فرمان جاری باشد، مسیر کامل با همان فایل مطابقت دارد. برای یک مسیر نسبی، دایرکتوری فعلی به عنوان نقطه شروع عمل می کند. ساده ترین حالت یک مسیر نسبی، نام فایل است. در زمینه اجرای دستور، به معنای فایلی با آن نام است که در دایرکتوری فعلی قرار دارد.

برای نوشتن یک مسیر نسبی به فهرست فعلی، یک ورودی شرطی وجود دارد . (نقطه). برای ثبت مسیر نسبی به دایرکتوری که حاوی دایرکتوری فعلی است، یک نماد شرطی وجود دارد .. (دو نقطه). دستور نشان داده شده در لیست زیر، همه فایل ها را از دایرکتوری فعلی به دایرکتوری کپی می کند همسایه، در کنار آن قرار دارد.

کپی *.* .\همسایه

فایل های دسته ای

تا به حال هنگام مثال زدن، فرض را بر این می گذاشتیم که هر بار دستورات را به صورت دستی وارد می کنیم. هنگام پردازش تعداد زیادی فایل یا اجرای سیستماتیک دستورات مشابه، این کار دست و پا گیر می شود. بنابراین پردازشگر فرمان توانایی اجرای فایل های دستوری را فراهم می کند. فایل دسته ای یک فایل متنی است که در آن دستورات (یا حداقل یک دستور) تایپ می شود. نمونه فایل دسته ای در لیست زیر نشان داده شده است. سعی کنید حدس بزنید این فایل دسته ای چه کاری انجام می دهد.

help copy > copy.help

کمک به حرکت > حرکت.کمک

حرکت *.help msdos-help

اگر هدف این فایل برای شما یک رمز و راز باقی مانده است، سعی کنید در واقع آن را ایجاد و اجرا کنید. مرسوم است که به فایل های فرمان پسوند داده می شود خفاش. به این ترتیب فایل هایی از این نوع توسط پردازشگر فرمان شناسایی می شوند. این فایل را می توان به عنوان مثال نامید make-help.bat.

برای اجرای فایل دسته ای:

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

در یک فایل دسته ای، هر دستور یک خط را اشغال می کند. به طور دقیق تر، راهی برای قرار دادن یک دستور در چندین خط متوالی وجود دارد؛ برای انجام این کار، بلافاصله قبل از هر خط شکسته باید علامت "cap" را قرار دهید. ^ . (هر سرپوش باید آخرین نویسه در خط خود باشد؛ پس از آن نباید هیچ فاصله یا تبی وجود داشته باشد.) نمونه ای از چنین دستوری در لیست زیر نشان داده شده است.

در صورت وجود disser.txt ^

disser.txt ^ را کپی کنید

d:\science\papers\drafts\sources

اما به خاطر سادگی، برای اینکه هر بار رزرو نکنیم، فرض می کنیم که به یک معنا این یک خط طولانی "منطقی" است.

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

با نگاهی به آینده، اجازه دهید بگوییم که در صورت لزوم، توالی اجرای دستور را می توان با استفاده از دستورات کنترل تغییر داد (چه چیزی ممکن است چنین نیازی را ایجاد کند یک سؤال جداگانه است).

دایرکتوری فعلی را با دایرکتوری که فایل دسته ای که قرار است راه اندازی شود در آن قرار دارد اشتباه نگیرید. فرض کنید دایرکتوری فعلی است کار کردن، حاوی یک دایرکتوری است ابزارو دایرکتوری tools فایل های دسته ای را ذخیره می کند. شما یکی از آنها را با دستور اجرا می کنید tools\collect-images.bat. بنابراین، "از نقطه نظر" این فایل دستوری، دایرکتوری فعلی همچنان خواهد بود کار کردن، اما نه ابزار.

نظر دادن به فایل دسته ای و خروجی آن. دستورات echo و rem

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

سیستم فرمان MS-DOS دستوری را برای ایجاد نظرات ارائه می دهد: رم. این یک دستور ساختگی است که شامل انجام هیچ عملی نمی شود، اما به شما امکان می دهد متن دلخواه را در خط بعد از نام خود بنویسید. علاوه بر این، پردازشگر فرمان آن را به عنوان یک خطای نحوی درک نمی کند. نمونه ای از قالب بندی یک فایل فرمان با نظرات در لیست زیر نشان داده شده است.

رم ********************************************* ****

rem در حال تولید فایل های راهنما

help copy > copy.help

کمک به حرکت > حرکت.کمک

حرکت *.help msdos-help

به خطوط خالی که فایل دسته ای را به «پاراگراف» تقسیم می کند، توجه کنید. این ترفند ساده به شما امکان می دهد فایل دسته ای خود را خواناتر کنید.

هنگام اجرای فایل دسته ای بالا، تمام دستورات در حین اجرا روی صفحه نمایش داده می شوند که همیشه راحت نیست. صدور فرمان را می توان با استفاده از دستور غیرفعال کرد @echo خاموش. نماد "سگ" در جلوی فرمان اکواین بدان معنی است که خود این دستور باید در حالت "بی صدا" اجرا شود. همچنین ممکن است از خط فرمان استفاده نکنیم پژواک خاموش، اما جلوی هر فرمان یک «سگ» قرار دهید.

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

رم ********************************************* ****

rem تولید فایل های کمکی برای دستورات کپی و انتقال

رم ********************************************* ****

@echo تولید فایل های راهنما. یک ثانیه...

rem در حال تولید فایل های راهنما

help copy > copy.help

کمک به حرکت > حرکت.کمک

rem یک دایرکتوری برای ذخیره فایل های راهنما ایجاد کنید

rem فایل های راهنما را به دایرکتوری آماده شده منتقل کنید

حرکت *.help msdos-help

پژواک انجام شد!

ارسال پارامترها به یک فایل فرمان

فرض کنید می‌خواهیم یک فایل دسته‌ای ایجاد کنیم که ابتدا برای توصیف یک فرمان مشخص شده توسط کاربر راهنمایی ایجاد کند و سپس آن را برای مشاهده در Notepad بارگذاری کند. ترفند این است که دفعه بعد که فایل دسته ای را اجرا می کنیم به نحوی به آن بگوییم که این بار به کدام دستور علاقه مندیم.

برای حل این مشکل، مکانیزم پردازش پارامتر ارائه شده است. کاملا ساده کار می کند. اگر هنگام اجرای یک فایل دسته ای، کاربر چندین پارامتر را مشخص کرده باشد، در متن فایل دسته ای، اولین آنها را با ورودی مشخص می کنیم. %1 ، ورودی دوم %2 ، مدخل سوم %3 و غیره. ما از این نمادها در متن فایل دستور استفاده می کنیم به همان شکلی که از ضمایر در گفتار طبیعی استفاده می کنیم.

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

rem ما یک فایل با شرح دستور ایجاد می کنیم،

rem که نام آن به عنوان پارامتر ارسال می شود

کمک % 1 > help.tmp

rem فایل توضیحات را در ویرایشگر Notepad بارگیری کنید

دفترچه یادداشت help.tmp

بیایید فرض کنیم نام این فایل دسته ای را داده ایم show-help.bat. برای بارگذاری یک توضیحات فرمان در یک دفترچه یادداشت، به عنوان مثال، کارگردان، باید دستور را به صورت زیر وارد کنیم.

show-help.bat کارگردان

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

rem مثالی از یک فایل فرمان با دو پارامتر

rem یک دایرکتوری با نام مشخص شده توسط پارامتر اول ایجاد کنید

rem یک فایل در آن با شرح دستور ایجاد کنید،

rem که توسط پارامتر دوم مشخص شده است

کمک %2 > %1\%2.help

چه اتفاقی می‌افتد اگر کاربر هنگام اجرای این فایل دسته‌ای، به جای دو پارامتر، چهار پارامتر را مشخص کند؟ اشکالی ندارد، آنها با چیزی تداخل نخواهند کرد، فقط استفاده نمی شوند. اگر کاربر فقط پارامتر اول را مشخص کند چه اتفاقی می افتد؟ پارامتر دوم خالی خواهد بود. اثر این خواهد بود: فایل دسته ای اجرا می شود، اما انگار در جای ضبط شده است %2 چیزی نیست. دستور help لیستی از تمام دستورات را ایجاد می کند و آن را در فایلی با نام خالی و پسوند .help قرار می دهد. اگر کاربر این فایل را بدون تعیین هیچ پارامتری اجرا کند، زمانی که پردازشگر فرمان سعی می کند دستور را اجرا کند md(به یاد داشته باشید، این برای ایجاد یک دایرکتوری است)، یک خطای نحوی دریافت خواهیم کرد زیرا دستور md باید یک پارامتر داشته باشد.

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

متغیرها دستور تنظیم کنید

متغیر یک مقدار نامگذاری شده است. در کتاب های برنامه نویسی معمولاً یک متغیر با پاکت نامه ای که نامی روی آن نوشته شده است مقایسه می شود. شما می توانید چیزی را در داخل پاکت قرار دهید، به عنوان مثال، مقدار مشخصی پول - این ارزش آن است. مانند پاکت، مقدار متغیر را می توان تغییر داد.

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

برای استخراج مقدار یک متغیر، مانند شکل زیر، نام آن بین دو علامت درصد قرار می گیرد.

rem کامپایلر فایل های راهنما با فرمت CHM

help_compiler=c:\HTML Help Workshop\hcc.exe را تنظیم کنید

فایل راهنما rem Project برای ماژول "Warehouse".

store_hpj=help\sources\store\store.hpj را تنظیم کنید

فایل راهنمای پروژه rem برای ماژول "فروش".

sales_hpj=help\sources\sales\sales.hpj را تنظیم کنید

rem فایل های راهنما را کامپایل کنید

%help_compiler% %store_hpj%

%help_compiler% %sales_hpj%

فهرست زیر نشان می دهد که چرا متغیرها مفید هستند.

اولاً، آنها به شما اجازه می دهند از یک قطعه کوتاه مترادف با آن در یک فایل دسته ای به جای یک قطعه طولانی (مثلاً مسیر کامپایلر فایل راهنما) استفاده کنید. حداقل راحت است.

ثانیا، آنها به شما امکان می دهند از تکرار در متن فایل فرمان قطعاتی که ممکن است در آینده تغییر کنند جلوگیری کنید. تصور کنید که Microsoft HTML Workshop را مجدداً در دایرکتوری دیگری نصب کردیم. اگر متغیری در یک فایل دسته‌ای برای ثبت مسیر به آن استفاده شود، تنها یک خط در فایل دسته‌ای اصلاح شود، یعنی همان خطی که در آن مقدار متغیر اختصاص داده شده است. help_compiler. اگر مسیر کامپایلر را هر بار که نیاز به فراخوانی داشت می نوشتیم، پس از تغییر مسیر باید هر خط را اصلاح کنیم. در مثال بالا دو مورد از آنها وجود دارد، اما در یک پروژه واقعی بسته به تعداد فایل‌های راهنما که می‌خواهیم کامپایل کنیم، می‌توان به همین راحتی پنج یا پانزده مورد از آنها وجود داشت. مشکل این نیست که تصحیح دستی هر خط دشوار است (بالاخره، هیچ کس دستورات "کپی" و "پیست" را لغو نکرده است)، بلکه این امر احتمال خطای تصادفی را به شدت افزایش می دهد.

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

هنگام نوشتن فایل‌های دسته‌ای، اغلب از تکنیک زیر استفاده می‌شود: چندین مقدار متغیر در کنار هم نشان داده می‌شوند (یا با برخی نمادها یا خطوط در هم آمیخته می‌شوند)، تا مقداری معنی‌دار جدید به دست آید. یک مثال در لیست زیر نشان داده شده است.

بررسی شرایط و انتخاب گزینه ها دستورات if و goto

دستور if به شما امکان می دهد گروه هایی از دستورات را در یک فایل دسته ای انتخاب کنید که بسته به شرایط خاص اجرا می شوند یا اجرا نمی شوند. این برای چیست؟

هنگام ایجاد فایل‌های دسته‌ای که از پارامترها استفاده می‌کنند، بررسی وضعیت تقریباً یک مرحله ضروری است. قبل از شروع کار، فایل دسته ای معمولاً باید مطمئن شود که مجموعه صحیحی از پارامترها به آن ارسال شده است. در غیر این صورت، خطر زیادی وجود دارد که اشتباه یا بی اثر اجرا شود و کاربر فقط در این فکر باقی بماند که مشکل چیست. علاوه بر این، اگر یک فایل دسته‌ای هر داده‌ای را حذف، جابجا یا بازنویسی کند، در صورت نادرست بودن پارامترها حتی می‌تواند باعث آسیب شود.

فهرست زیر فایل دستوری کامپایل فایل راهنما را نشان می دهد که قبلاً با آن آشنا هستید. بررسی خالی نبودن پارامتر اول به ابتدای فایل فرمان اضافه شده است. لطفاً به این ویژگی نحوی توجه کنید: عملیات مقایسه از علامت مساوی دوتایی استفاده می کند. اگر پارامتر اول خالی نباشد، دستور goto اجرا می شود که پوسته را به برچسب مشخص شده "پرتاب" می کند. در این صورت نام این برچسب کامپایل است. توجه داشته باشید که در جایی که یک برچسب ظاهر می شود، قبل از نام آن علامت دونقطه وجود دارد، اما در دستور goto اینطور نیست. اگر پارامتر اول خالی باشد، پوسته به خط بعدی منتقل می شود که یک پیام خطا ایجاد می کند. و سپس به مورد بعدی، که آن را به انتهای فایل به یک برچسب با نام منتقل می کند تمام کردن.

اگر نه "%1"=="" باید کامپایل شود

rem اگر پارامتر خالی باشد، پیغام خطا نمایش می دهیم

نام پروژه فایل راهنما echo مشخص نشده است

rem و به انتهای فایل دسته ای بروید

rem برای پایان علامت

rem این یک برچسب به نام کامپایل است

rem در زیر دستورات کامپایل آورده شده است

rem مسیر به کامپایلر فایل راهنما

set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe"

مسیر rem به دایرکتوری که پروژه های فایل راهنما در آن قرار دارند

set project_path=e:\work\projects\help-projects

rem برای پردازش یک پروژه خاص با کامپایلر تماس بگیرید،

rem که نام آن در پارامتر اول ارسال شده است

%help_compiler% %project_path%\%1.hpj

rem این یک برچسب به نام پایان است

بیایید با آن روبرو شویم، روش پیشنهادی برای بررسی یک پارامتر موفق ترین نیست.

ابتدا، اگر کاربر اشتباهاً نام فایلی را که وجود ندارد به عنوان پارامتر مشخص کند، فایل دسته ای به این امر بسنده کرده و اقدام به کامپایل می کند. راه صحیح تر این است که بررسی کنید آیا چنین فایلی واقعا وجود دارد یا خیر. برای این منظور زبان دستوری MS-DOS یک کلمه خاص ارائه می کند وجود داشته باشد. بنابراین بهتر است بنویسیم: در صورت وجود %1.hpj باید کامپایل شود.

دوم، استفاده فعال از دستور رفتن به(به اصطلاح پرش بدون قید و شرط) و برچسب ها کد را به شدت گیج می کنند. از نظر فنی، آنها بد نیستند، اما اشکال زدایی و نگهداری یک فایل دسته ای نوشته شده در این سبک کاملاً ناخوشایند است. بنابراین، برنامه نویسان مدتهاست که پرش بدون قید و شرط را یک تکنیک نامطلوب در نظر گرفته اند. در زیر یک نسخه درست تر از نظر سبک برنامه نویسی نشان داده شده است که از ساختار استفاده می کند اگر دیگری. این کار به این صورت است: اگر شرط درست است، دستورات داخل پرانتز بعد از آن اگر، و اگر نادرست است، پس از آن در پرانتز دیگر.

rem بررسی کنید که آیا پارامتر تنظیم شده است

اگر وجود ندارد %1.hpj (

rem مسیر به کامپایلر فایل راهنما

set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe"

مسیر rem به دایرکتوری که پروژه های فایل راهنما در آن قرار دارند

set project_path=e:\work\projects\help-projects

rem برای پردازش یک پروژه خاص با کامپایلر تماس بگیرید،

%help_compiler% %project_path%\%1.hpj

مثال دیگری از کار با چک می زنیم. فایل دسته ای زیر یک دایرکتوری به نام ایجاد می کند فایل های راهنما(فرض کنید، فایل های راهنما کامپایل شده را در آن آپلود کنید). علاوه بر این، اگر دایرکتوری با همین نام از قبل وجود داشته باشد (و احتمالاً حاوی فایل‌های راهنما قدیمی است که نمی‌خواهید از دست بدهید: چه می‌شود اگر موارد جدید بدتر شوند؟)، فایل دسته‌ای پسوند bak را به آن اختصاص می‌دهد. . اما اگر دایرکتوری help-files.bakقبلا وجود داشته است، سپس فایل دسته ای آن را حذف می کند (فرض می کنیم که یک نسخه پشتیبان برای ما کافی است).

اگر وجود دارد help-files.bak rd help-files.bak

در صورت وجود فایل های کمکی، فایل های کمکی help-files.bak

پردازش فایل انبوه برای فرمان

دستور for به شما اجازه می دهد تا اجرای اقدامات تکراری از همان نوع را سازماندهی کنید. همانطور که در لیست زیر نشان داده شده است می توانید از آن برای نمایش اعداد یک تا ده استفاده کنید.

برای /l %%i در (1،1،10) اکو %%i را انجام دهید

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

منطق این دستور به شرح زیر است. بعد از کلمه که درمحدوده تغییر شمارنده چرخه نشان داده شده است. در این نسخه از دستور، این سه عدد از اعداد است: مقدار اولیه شمارنده، مرحله شمارش، مقدار محدود شمارنده. هنگام اجرای یک فرمان، پوسته ابتدا متغیر را اختصاص می دهد منمعنی 1 ، و سپس در هر مرحله از حلقه آن را افزایش می دهد 1 تا زمانی که از آن فراتر رود 10 . بدیهی است که ده مرحله از این قبیل وجود خواهد داشت. اگر عددی را به عنوان مرحله شمارش مشخص می کردیم 2 ، سپس حلقه پنج بار اجرا می شود. در هر مرحله از حلقه، بدنه حلقه نوشته شده بعد از کلمه اجرا می شود انجام دادن. در مثال بالا، این دستور echo است که مقدار فعلی شمارنده حلقه را نشان می دهد.

احتمالاً می توانید به موقعیتی فکر کنید که در آن چیزی شبیه به این واقعاً مورد نیاز است، اما معمولاً دستور برایبرای تکرار و پردازش فایل ها استفاده می شود. باید گفت که در موارد نسبتاً ساده، پردازش فایل انبوه با استفاده از کاراکترهای wildcard انجام می شود. اگر بخواهیم همه فایل های موجود در فهرست فعلی را با پسوند جایگزین کنیم htmبر .html، دستور را وارد می کنیم ren *.htm *.html. اما اگر همان کار را نه در یک دایرکتوری، بلکه در یک درخت دایرکتوری انجام دهید، بدون دستور for نمی توانید انجام دهید. فایل دسته‌ای زیر این عملیات را برای همه فایل‌های htm در زیر شاخه وب‌سایت دایرکتوری فعلی انجام می‌دهد. به طور دقیق تر، در کل درخت دایرکتوری که در داخل است سایت اینترنتی.

برای /r وب سایت %%i در (*.htm) انجام دهید %%i %%~ni.html

کلید /rنشان دهنده نیاز به عبور از دایرکتوری است سایت اینترنتیو تمام درونش اگر آن را مشخص نکنید (اما پس از آن مجاز به تعیین دایرکتوری نیستید)، فقط فایل‌های موجود در فهرست فعلی پردازش می‌شوند. محدوده مقادیر شمارنده حلقه در این نوع فرمان مجموعه ای از تمام فایل های دارای پسوند است htm، در داخل یک فهرست (به طور دقیق تر، یک درخت) قرار دارد سایت اینترنتی. یک ورودی عجیب در نگاه اول ~نییعنی از مقدار متغیر منفقط باید نام فایل را انتخاب کنید. زبان فرمان MS-DOS چندین اصلاح کننده از این دست را فراهم می کند، به عنوان مثال، نوشتن ~xiپسوند فایل را نشان می دهد. همه اصلاح کننده ها در راهنمای دستور توضیح داده شده اند برای.

بدنه یک حلقه می تواند از چندین دستور محصور در پرانتز تشکیل شده باشد.

برای /r وب سایت %%i در (*.htm) انجام دهید (

rem نام فایل را چاپ کنید

rem فایل را تغییر نام دهید

رن %%i %%~ni.html

انتقال کنترل به فایل دسته ای دیگر. فرمان فراخوانی

امکان فراخوانی یک فایل دسته ای دیگر از یک فایل دسته ای وجود دارد. دستور برای این است زنگ زدن. عالی است، متغیرهای مشخص شده در فایل دسته ای فراخوانی برای فایل فراخوانی "مشاهده" هستند. و بالعکس، پس از اتمام کار فایل فراخوانی شده و بازگرداندن کنترل به تماس گیرنده، متغییرهای باقیمانده به نام "وارث" را "می بیند". این به توسعه دهنده فایل دسته ای اجازه می دهد تا کاری شبیه به این انجام دهد: اگر چندین فایل دستوری باید از مقادیر یکسانی استفاده کنند، به عنوان مثال مسیرهای برخی فایل ها، می توان آنها را در یک فایل دستور جداگانه قرار داد که نقش یک فایل پیکربندی را ایفا می کند. هر فایل دستور کار با یک فراخوانی پیکربندی آغاز می شود. مزیت این است که هنگام تغییر مسیرها، شما فقط باید در یک فایل پیکربندی تغییرات ایجاد کنید، نه در بسیاری از کارگران.

فایل دسته ای "پیکربندی". config.bat.

rem مسیر به کامپایلر فایل راهنما

set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe"

مسیر rem به دایرکتوری که پروژه های فایل راهنما در آن قرار دارند

set project_path=e:\work\projects\help-projects

فایل دسته ای "در حال کار".

rem تنظیم متغیرها

rem بررسی کنید که آیا پارامتر تنظیم شده است

اگر وجود ندارد %1.hpj (

rem اگر پارامتر خالی باشد، پیغام خطا نمایش می دهیم

echo این پروژه فایل راهنما وجود ندارد.

rem در زیر دستورات کامپایل آورده شده است

rem برای پردازش یک پروژه خاص با کامپایلر تماس بگیرید،

rem که نام آن در پارامتر اول ارسال شده است

%help_compiler% %project_path%\%1.hpj

هنگام کار بر روی رایانه، اغلب نیاز به تکرار همان دستورات DOS برای انجام اقدامات اجرا شده به صورت دوره ای، ساخت یک دنباله پیچیده و چند سطحی از دستورات یا برنامه های اجرایی، خودکار کردن کار با برنامه ها و فایل ها با یا بدون مشارکت وجود دارد. کاربر. این سیستم عامل توانایی نوشتن چندین دستور در یک فایل bat را دارد. در عین حال، با اجرای ساده این فایل دسته ای (اغلب به نام اسکریپت یا به سادگی "فایل دسته ای") می توانید دستورات تجویز شده را اجرا کنید و با ثبت آن در رویدادهای زمانبند ویندوز، می توانید این فرآیند را خودکار کنید.

ویژگی فایل های این نوع عدم وجود کد در داخل است - فقط اطلاعات ساعت وجود دارد که توسط یک پردازنده فرمان DOS خوانده و اجرا می شود و تقریباً با تمام نسخه های سیستم عامل ویندوز سازگار است. یک مثال قابل توجه فایل autoexec.bat است که برای راه اندازی این سیستم عامل ضروری است، زیرا این فایل است که تنظیمات خود را در هنگام راه اندازی انجام می دهد.

ویژگی های اساسی فایل های دسته ای

دستورات موجود در فایل bat را می توان بر اساس عملکرد به چند گروه تقسیم کرد:

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

اجرای فایل های دسته ای

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

زمانی که یک فایل دستوری در دایرکتوری دیگری قرار دارد، علاوه بر نام کامل این فایل، باید مسیر کامل دایرکتوری محل ذخیره آن را وارد کنید. پسوند فایل را نیز می توان حذف کرد. به عنوان مثال، دایرکتوری فعلی d:\photo\work است و فایل فرمان vera.bat که باید با پارامترهای resize.doc و /p اجرا شود در دایرکتوری d:\photo\home قرار دارد. سپس برای اینکه فایل ما راه اندازی شود، باید دستور d:\photo\home\vera resize.doc /p یا دستور ..\home\vera resize.doc /p را وارد کنید.

وقفه در کار

دستورات فایل BAT که پس از راه اندازی اجرا می شوند را می توان با استفاده از ترکیب دکمه ها قطع کرد +و +. صفحه نمایش از شما می خواهد که فایل فرمان را با یک اعلان در انتظار یک ورودی بله یا خیر لغو کنید. اگر Y را وارد کنید، اجرا قطع می شود و لیست دستورات باقی مانده در فایل bat نادیده گرفته می شود. اگر نماد N را وارد کنید، اجرا با دستور بعدی از لیست ادامه می یابد.

فراخوانی یک فایل دسته ای دیگر

فایل های Bat ممکن است حاوی پیوندهایی به اجرای اسکریپت های دیگر باشد. اگر به سادگی یک فایل bat را در بدنه اسکریپت بنویسید، دستورات پس از آن دیگر اجرا نمی شوند، زیرا کنترل به فایل دسته ای دیگری منتقل می شود و دستورات از آن اجرا می شوند. اگر پس از اجرای یک فایل داخلی نیاز به بازگشت باشد، می توان آن را با دستور CALL فراخوانی کرد. فرمت فرمان به این صورت است: CALL bat-file-name [پارامترهای راه اندازی].

پارامترهایی که به فایل(های) فرمان فراخوانی شده ارسال می شوند معمولاً کاراکترهای %1 - %9 هستند. هنگامی که تمام دستورات فایل های bat به ترتیب ارسال می شوند، اجرای اسکریپت اصلی از خط بعدی ادامه می یابد.

اجرای گام به گام

مواقعی وجود دارد که دستورات فایل bat باید مرحله به مرحله (با توقف بعد از هر خط) اجرا شوند. اغلب اوقات، این حالت هنگام اشکال زدایی یا آزمایش اسکریپت ها مورد نیاز است. دستور به این شکل است: COMMAND /y/c script_name [پارامترها].

هنگام اجرا، برای هر دستور یک اعلان Y یا N صادر می شود، در صورت نیاز به اجرای دستور، کلید Enter یا Y را فشار دهید، اگر می خواهید دستور را رد کنید، ESC یا N را فشار دهید.

خروجی فرمان را روی صفحه غیرفعال یا فعال کنید

هنگامی که یک فایل bat راه اندازی می شود، دستورات قبل از اجرا خط به خط روی صفحه نمایش داده می شوند و سپس اجرا می شوند. گاهی اوقات این باعث ناراحتی می شود، زیرا با یک فایل دسته ای بزرگ، دستورات در یک لیست طولانی در جلوی کاربر روی صفحه اجرا می شوند و گاهی اوقات لازم است برای مثال برای گفتگو یا اشکال زدایی نشان داده شوند. برای نمایش دستورات در فایل bat از دستور ECHO ON استفاده کنید. برای غیرفعال کردن این حالت، ECHO را با پارامتر OFF وارد کنید. در این صورت تمام دستورات اجرا شده دیگر روی صفحه نمایش داده نمی شوند.

برای غیرفعال کردن خروجی تنها یک خط از فایل بدنه روی صفحه، می توانید از علامت @ در همان ابتدای این خط استفاده کنید. اغلب، این نماد را می توان همراه با دستور @ECHO OFF یافت تا از نمایش آن بر روی صفحه نمایش مانیتور جلوگیری شود. این حالت اغلب توسط مهاجمان استفاده می شود و بر اساس فایل های bat ویروس ایجاد می کند یا باعث ایجاد مشکلات جزئی و عمده برای کاربران رایانه می شود.

پیام ها هنگام اجرای دستورات

اگر کاراکترهایی غیر از ON یا OFF بعد از دستور ECHO قرار بگیرند، در هر حالتی روی صفحه نمایش داده می شوند. اگر ECHO هیچ پارامتری نداشته باشد، وضعیت حالت نمایش دستورات اجرایی را نمایش می دهد - روشن یا خاموش.

در صورت تمایل، حتی می توانید صدای (جیرجیر) کامپیوتر را با استفاده از یک فایل bat بازتولید کنید. مثال‌های دستوری زیر بر اساس دستور ECHO با اضافه کردن کاراکترهای خاص است.

برای پخش یک سیگنال صوتی، باید یک کاراکتر استاندارد با کد 7 نمایش دهید. این کار را می توان با فشار دادن کلید انجام داد. و "7" در صفحه کلید عددی (با برچسب خانه).

برای بهبود خوانایی پیام ها می توانید از دستور ECHO با پارامتر "." استفاده کنید. (بلافاصله بعد از دستور بدون فاصله قرار می گیرد) یا یک کاراکتر خاص با کد 255. روی صفحه مانند یک خط خالی به نظر می رسد.

دستور ECHO می تواند برای خروجی پیام ها به یک فایل جداگانه استفاده شود. ماهیت آن تغییر مسیر خروجی پیام به یک فایل به جای صفحه نمایشگر است. برای ذخیره گزارش‌ها، نظرسنجی و ثبت رویدادها، می‌توانید از bat استفاده کنید. دستورات خروجی دارای فرمت زیر هستند:

پیام ECHO >> نام فایل - دستور یک خط به انتهای فایل موجود اضافه می کند. اگر چنین فایلی در این دایرکتوری وجود نداشته باشد، یک فایل جدید ایجاد می شود.

پیام ECHO > نام فایل - این دستور یک فایل جدید ایجاد می کند و خط فعلی را روی آن می نویسد. اگر چنین فایلی در دایرکتوری فعلی وجود داشته باشد، محتویات آن حذف می شود و دستور یا نتیجه آن یادداشت می شود.

استفاده از نظرات

برای سهولت در ویرایش اسکریپت ها از دستور REM استفاده می شود. ویندوز پس از اجرا تمام دستورات فایل bat را نادیده می گیرد. آنها را می توان در هنگام ویرایش و حالت گام به گام مشاهده کرد. در سایر موارد، نظرات روی صفحه نمایش داده نمی شوند.

دستور Delay در فایل bat

گاهی اوقات در طول اجرای یک فایل دسته ای، توقف موقت اجرای دستورات ضروری می شود، به عنوان مثال، منتظر پاسخ کاربر، افزایش زمان خواندن یک پیام طولانی، درج یک دیسک، تایید وجود یک کاربر، یا برای اشکال زدایی یک فایل دسته ای. دستور تاخیر در فایل bat به صورت PAUSE بدون پارامتر نوشته می شود. در این حالت، پیامی مانند "برای ادامه هر کلید را فشار دهید" روی صفحه نمایش ظاهر می شود و اجرای اسکریپت تا فشار دادن دکمه صفحه کلید به حالت تعلیق در می آید. اگر ترکیب فشرده شود +یا +، سپس سیستم این را به عنوان تکمیل فایل اجرایی درک می کند و درخواستی برای تأیید اتمام کار خود صادر می کند: «اجرای فایل دسته ای لغو شود؟ (Y/N) اگر کلید Y را فشار دهید، اسکریپت در آن نقطه قطع می شود و تمام دستورات اجرا نشده باقی مانده نادیده گرفته می شوند. با فشار دادن N اجرا با دستور بعدی ادامه می یابد. هنگامی که مکث می کنید، با فشار دادن هر کلید الفبایی دیگر و همچنین Space و Enter، اجرای فایل اجرایی با دستور بعدی ادامه می یابد.

لیست فایل

برای اجرای متوالی چندین فایل از لیست موجود در یک دایرکتوری، می توانید از یک فایل bat نیز استفاده کنید. دستورات «اجرای برنامه با نام» و «اجرای برنامه با پسوند فایل» اغلب می‌توانند به خودکارسازی پردازش اسناد، مانند مرتب‌سازی پیوست‌های ایمیل، کمک کنند. آنها در پارامترهای دستور FOR متفاوت هستند. فرمت نوشتن آن در زیر آمده است:

FOR %x IN (فهرست فایل ها) دستور DO، جایی که:

X - هر نماد، به جز اعداد از 0 تا 9.

لیست - نام فایل های جدا شده با فاصله یا نام یک فایل واحد. در این حالت می توانید از کاراکترهای ویژه “?” استفاده کنید. و "*" برای جایگزینی یک تا چند کاراکتر در نام فایل.

Command - هر دستور یا برنامه DOS، به جز FOR; اگر نیاز به استفاده از FOR وجود دارد، به جای %x باید %%x را مشخص کنید.

هنگام استفاده از این دستور برای نوشتن فایل های bat، باید در نظر داشته باشید که نام ها در برنامه های فرمت DOS محدودیتی در طول نام دارند. برای اینکه دستور FOR را برای کار با نام فایل های طولانی تغییر دهید، باید به یاد داشته باشید که قبل از آن دستور LFNFOR ON را اجرا کنید تا حالت کار با نام های طولانی فعال شود و LFNFOR OFF برای غیرفعال کردن آن و بازگشت به طول فایل استاندارد.

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

انتقال در فایل های خفاش

برای سهولت در مدیریت ترتیب اجرای دستورات در فایل‌های bat، آنها اغلب از دستورات پرش و برچسب‌هایی استفاده می‌کنند که این پرش‌ها را انجام می‌دهند.
برچسب هر خطی در یک فایل اجرایی است که با کاراکتر کولون شروع می شود. نام برچسب مجموعه ای از کاراکترهای بعد از دو نقطه تا انتهای خط یا تا اولین فاصله است که پس از آن بقیه خط نادیده گرفته می شود که می تواند به عنوان نظر برای برچسب پرش استفاده شود.

دستور پرش GOTO با نام برچسب که با فاصله از هم جدا شده نوشته می شود. اگر هیچ پارامتری وجود نداشته باشد یا نام برچسب در فایل فرمان یافت نشود، اسکریپت روی این دستور کار نمی کند. مثال:

REM (فرمان های مورد نیاز اجرا می شوند).

در این مثال، اجرای متوالی فایل فرمان، پس از رسیدن به GOTO zzz، به label:zzz می‌رود و با REM ادامه می‌یابد و همه چیز بین دستور jump و برچسب مشخص شده را نادیده می‌گیرد.

استفاده از شرایط هنگام کار با فایل های bat

اگر یک فایل bat از بررسی رویداد IF استفاده کند ممکن است بسته به شرایط مختلف دستورات را اجرا کند یا نکند. فرمت این دستور "فرمان شرط IF" است.

شرط انواع مختلفی از عبارات را نشان می دهد:

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

LINE 1 == LINE 2 - اگر خطوط کاملاً مطابقت داشته باشند، شرط درست می شود. به جای رشته ها، می توانید نویسه های %0 - %9 را جایگزین کنید، سپس پارامترهای فایل دسته ای با هم مقایسه می شوند.

EXIST - نام فایل - اگر فایل مشخص شده وجود داشته باشد، شرط درست است.

NOT - شرط - اگر شرط مشخص شده نادرست باشد، خروجی فرمان مقدار واقعی را دریافت می کند.

دستورات استفاده شده در فایل های bat

اگر روی دکمه "شروع" کلیک کنید و خط فرمان (cmd) را اجرا کنید، می توانید همه چیزهایی که در فایل bat درج شده است را مشاهده کنید؛ می توانید از آن به عنوان یک ابزار اشکال زدایی، به عنوان دستیار، برنامه ای برای به دست آوردن اطلاعات در مورد دستورات استفاده کنید. برای این کار به سادگی می توانید HELP را تایپ کنید. این یک لیست از دستورات با توضیحات مختصری از آنها تولید می کند. برای کسب اطلاعات دقیق تر می توانید با نام دستور مورد نظر HELP را وارد کنید.

استفاده از فایل های bat هنگام پشتیبان گیری از داده ها

فایل‌های دسته‌ای زندگی را برای مدیران سیستم در کار روزانه‌شان بسیار آسان‌تر می‌کنند. رایج ترین زمینه های کاربرد آنها ایجاد، حذف، تغییر نام و موارد دیگر است. همه اینها بر اساس استفاده از دستور COPY bat file است. برای مثال، می‌توانید برنامه‌ای ایجاد کنید که از یک پوشه انتخاب‌شده نسخه‌های بایگانی اسناد را با داده‌های کاربر با فرمت‌های خاص، به استثنای فایل‌های رسانه‌ای بزرگ، تهیه نسخه پشتیبان در پوشه‌ای با نام کاربر و نامیدن آن «Command_copying_files.bat» ایجاد کنید. ". پس از این، لازم است اطمینان حاصل شود که در زمان معینی با استفاده از زمانبندی داخلی یا توسط خود برنامه شروع می شود و در نتیجه از ایمنی داده های کاربر اطمینان حاصل می شود.

استفاده از فایل‌های bat (که به‌عنوان «فایل خفاش» یا «فایل دسته‌ای» شناخته می‌شود) اغلب می‌تواند کار شما را آسان‌تر کند، به عنوان مثال، نصب خودکار نرم‌افزار بر اساس پارامترهای از پیش تعریف‌شده. همگام سازی تاریخ و زمان؛ اجرای توالی دستورات و غیره با این حال، برای استفاده از چنین اسکریپت هایی باید بتوانید آنها را ایجاد کنید. در هسته خود، فایل‌های با پسوند bat مجموعه‌ای از دستورات کنسول هستند، همان دستوراتی که در خط فرمان استفاده می‌شوند.

در این مقاله سه روش برای ایجاد فایل‌های bat بحث می‌شود:

  1. با استفاده از خط فرمان.
  2. با استفاده از برنامه Notepad
  3. با استفاده از ابزار "Dr.Batcher".

مرحله 1.برای راه‌اندازی خط فرمان در منوی «شروع»، از گفتگوی «جستجوی برنامه‌ها و فایل‌ها» استفاده کنید. باید پارامتر جستجوی cmd را تنظیم کنید و روی نماد در بخش «برنامه‌ها» کلیک چپ کنید.

گام 2.توصیه می شود از یک دایرکتوری جداگانه برای ذخیره فایل های دسته ای نوشته شده استفاده کنید، بنابراین با وارد کردن دستور "MD D:\Bat" یک مکان روی هارد دیسک خود انتخاب کنید و یک پوشه خاص ایجاد کنید.

در یک یادداشت!دستور بدون نقل قول وارد می شود، فقط پس از استفاده یک فاصله اضافه می شودM.D. در این مورد، پوشه ای به نام « خفاش"روی دیسک ایجاد خواهد شدد. خط فرمان بدون حروف بزرگ و کوچک است، یعنی نتیجه اجرای «MDD:\خفاش، "mdD:\خفاش" و "mdد:\خفاش" همینطور خواهد بود.

مرحله 3.فایل دسته ای واقعی را با استفاده از دستور "@echo off > D:\Bat\probnik.bat" ایجاد کنید.

در یک یادداشت!در این مورد، حروف بزرگ هنگام تعیین مسیر قرار دادن، یعنی پوشه " مهم است.خفاش، "خفاش" و "BAT" - سه دایرکتوری مستقل و کاملاً متفاوت. اگر به پوشه ای که وجود ندارد اشاره کنید، دستور اجرا نمی شود. لطفا توجه داشته باشید که هیچ پیام خطایی نیز وجود نخواهد داشت.

مرحله 4.برای تغییر محتویات یک فایل، محل ذخیره آن را باز کنید، منوی زمینه را فراخوانی کنید و خط "تغییر" را انتخاب کنید.

با استفاده از Notepad یک فایل دسته ای ایجاد کنید

مرحله 1.برای راه‌اندازی دفترچه یادداشت، به منوی «همه برنامه‌ها» بروید، «لوازم جانبی» را انتخاب کنید و روی نماد راه‌اندازی کلیک کنید.

گام 2.

آموزش ساخت فایل بدون دانش برنامه نویسی از مقاله جدید -

به عنوان مثال پیشنهاد می کنیم از کد زیر استفاده کنید که تصویر یک ستاره را نمایش می دهد:

« @echo خاموش

mode con cols=32 lines=50

ستاره عنوان!

برای %%i در (

88888888888888881888888888888888,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,

) اکو %%i را انجام دهید

مکث > تهی

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

مرحله 3.فایل به دست آمده را در دایرکتوری مورد نظر ذخیره کنید. برای تغییر وضوح، از خط "نوع فایل" استفاده کنید، "همه فایل ها" را در آن انتخاب کنید و هنگام وارد کردن نام، پس از نقطه، "bat" را نشان دهید.

ایجاد یک فایل دسته ای با استفاده از "دکتر.باچر"

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

مرحله 1.برای ایجاد یک فایل، از منوی «فایل»، آیتم «جدید...» یا کلید ترکیبی «Ctrl+N» استفاده کنید.

گام 2.در کادر محاوره ای، "Empty Batch File" را علامت بزنید و روی "OK" کلیک کنید.

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

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

مرحله 4.فایل به دست آمده را در دایرکتوری مورد نظر ذخیره کنید.

مهم!لطفاً توجه داشته باشید که این ابزار به شما امکان می دهد برنامه را در لحظه اشکال زدایی کنید. فقط از منو استفاده کنید "Batch" برای شروع دنباله ای که قبلاً وارد شده است. پیشرفت در کادر پایین نشان داده شده است. هنگام استفاده از آیتم "اجرا کردنکه درخارجیWindow...” فایل دسته ای را اجرا می کند، مشابه راه اندازی آن با استفاده از سیستم عامل.

نتیجه

ما سه راه برای ایجاد فایل با پسوند bat را توضیح داده ایم. دو تا از روش های ذکر شده، روش های استاندارد موجود با ویندوز هستند، یکی نیاز به نصب نرم افزار اضافی دارد. ارزیابی هر روش در جدول خلاصه آورده شده است.

اطلاعات\نامخط فرماننوت بوکدکتر بچر
مجوزبا ویندوز ارائه می شودبا ویندوز ارائه می شودپرداخت شده
زبان روسیبسته به نسخه ویندوزبسته به نسخه
ایجاد یک فایل دسته ایآرهآرهآره
ویرایش یک فایل دسته ایخیرآرهآره
راحتی رابط (از 1 تا 5)4 4 5

ویدئو - ایجاد یک فایل خفاش

بهترین مقالات در این زمینه