1-مقدمة تاريخية :

2-مقدمة لأوامر الدوس:

3-التعامل مع الملفات:

4-التعامل مع الادلة:

5-طرق تقنية متقدمة

6-أنشاء ملفات الحزم:

7-انشاء اجراءات أقلاع

8-أستخدام برنامج مفتاح الدوس:

9- التعامل مع المنافذ :

 

 

 

 

 

 

 

working with batch programs

العمل على برامج الحزم

أذا كنت تكرر كتابة عدة أوامر فيمكنك أن تنشىء ملف يقوم بالنيابة عنك بكتابة تلك البرامج ويسمى هذا النوع بالباتش ويكون بالامتداد .bat

understand batch files

فهم ملفات الباتش:

أن ملف الباتش عبارة عن ملف نصى يحتوى على واحد أو أكثر من ملفات الدوس

مثال:أنشائ ملف باتش يقوم بنقل القرص المرن الى المجلد mam الموجود على c

 

xcopy  a:\ma\*.*  c:\mam

del a:\ma\*.*

rd a:\ma

لقد قمنا بانشاء ملف bat وسميناه movi وكتبنا ماسبق فيه 

*حفظنا الملف بالمتداد bat

*كتبنا الملف باستخدام الedit او المفكرة (notepad)

*الدوس ليس به أمر نقل (move) لذا فنحن نسخنا الملف ثم حذفناه ولاحظ أ مر النسخ وأمر الحذف؟

وهناك ستة أوامر فقط فى الدوس خاصة بالباتش وهى

call:

     يقوم بتنفيذ ملف باتش آخر ثم يعود لنفس الملف ليقوم بتنفيذ الباقى وبدون هذا الامر اذا فرعنا على ملف باتش آخر فبعد الانتهاء من تنفيذه لن يعود الينا

echo: (on, off)

يعرض او لا يعرض رسائل على الشاشة :مثل عرض الاوامر أثناء تنفيذها

الامر echo off  لايعرض صيغة الامر أثناء تنفيذه أما الامر echo فيعرض تعليق يظهر على الشاشة وأما الامر

echo on فيستانف عرض صيغة الامر وأذا أردنا عرض السطور عدا سطر بعينه نكتب  قبله  echo off@

for:

يقوم بتنفيذ الاوامر لمجموعة من الملفات أو المجلدات

goto:

يحول الىأمر فىجزء آخر من نفس الملف لتنفيذه هو وما بعد تلك النقطة

if :

ينفذ أمر مبنى على نتيجة مشروطة

pause:

لايقاف البرنامج مؤقتا حتى تنقر على أى مفتاح

rem:

تعليق على جزء من البرنامج ليوضح  ماعمله ونحو ذلك للتذكر ولايظهر عند التنفيذ

shift:

يغير مكان (change the position of replaceable)

 

أستطراد:

يجب عليك عند تسمية ملف الباتش الخاص بك ان لا تستخدم أسم ملف محجوز للدوس

فعلى سبيل المثال لنفرض انك سميت ملفك format فان هذا الملف لن ينفذ ....!    لماذا؟

الاجابة أن الدوس عند عمله ينفذ الاوامر بالاولوية فهو ينفذ أولا أوامر .com وأوامر .exe

فاذا وجد ملف له نفس اسم ملف الامتدادين السابقينو  له الامتداد bat  فلن ينفذه.

*حسنا كتبنا البرنامج ونريد أن ننفذه ماذا نفعل؟

ببساطة أكتب أسم الملف بدون أمتداد وهو المتبع مع كل الملفات التنفيذية مثل .com   exe  ثم اضغط enter

وأفتراضيا يعرض ms-dos كل أمر فى ملف الباتش كأمر واجب تنفيذه

وبعد أنتهاء تنفيذ برنامج الباتش فان الدوس ربما يعرض محثين فى نهاية التنفيذ   ! وذلك لان الدوس يعامل نهاية السطر كسطر جديد

** ولايقلف تنفيذ أوامر الباتش أضغط ctrl + c or ctrl +break

*** أختبار ملفات الباتش: من المفضل عند كتابة ملف باتش طويل أن تجزئه لعدة ملفات حتى يسهل أكتشاف الخطاء عند تنفيذه

وفى حالة فشل تنفيذ الامر فان برنامج الباتش لن يتوقف بل سينفذ الامر الذى يليه وستظهر رسالة خطء فان لم تظهر فان ذلك دليل على وجود أمر echo off فاذا اردت ان تظهر رسالة فى حالة حدوث الخطاء أحذف echo off

**** يمكن انشاء ملف باتش صغير عن طريق الامر copy conوقد سبق شرحه

مثال:

echo off
echo *******
if you will now copy files then*******
pause
copy l:\1\*.* k:\m
echo on
echo ********now I will delete that file if yes
then
******
pause
del l:\1\*.*
rd l:\1


الشرح :لدينا مجلدين على ال
L ,k

ونريد أن ننقل الملف من الL الى K  ونحذف المجلد

السطر الاول: echo off يخبرنا أن كل سطور الوامر لن تظهر أثناء التنفيذ

السطر الثانى: سيظهر هذا التعليقومكمل هذا التعليق سيضيفه الامر pause وهو (press any key to continue)

السطر الثالث: سيوقف تنفيذ الامر حتى تضغط على أى مفتاح

السطر الرابع: لن يظهر ولكن سينفذ عملية النسخ

السطر الخامس: سيظهر الاوامر المكتوبة أثناء تنفيذها.

...................الخ

مثال 2:

echo off

rem *****      its only example to traning on batch programs in dos*****


echo *******
if you will now copy files then*******
pause
copy l:\1\*.* k:\m
echo ********now I will delete that file if yes
then ******
pause
del l:\1\*.*
rd l:\1

سيتم عرض الناتج ولكن الملاحظة للامر rem لن تظهر حيث أنها ملاحظة للمبرمج

***** لنفترض الآن أن لدينا البرنامج السابق وليكن أسمه 1.bat ونريد أن نجعله يعمل من خلال برنامج باتش آخر وليكن أسمه 2.bat

المثال:

لننشئ ملف 2.bat

echo off

copy l:\1\*.*  k:\m1

call movi

pause

md l:\1

copy k:\m1\*.* l:\1

فى هذا البرنامج سيتم تنفيذ الجزء الاول ثم ينتقل الى الملف الثانى لينفذ مابه من أوامر ثم يرجع للملف الاول ليكمل باقى مابه من أوامر

*أذا لم يتضمن البرنامج الامر call فان البرنامج سينفذ الجزء الاول من البرنامج ثم ينتقل للبرنامج الثانى لينفذ مابه من أوامر دون أن يرجع

للبرنامج الرئيسى.

-----------------------------------------------------------------------------------------------------------------

 

هام جدا   very important

من أهم الاوامر فى ملفات الباتش 

1-REPLACEABLE PARAMETERS:(1% 9%)

2-CONTROLLING PROGRAM FLOW:(IF GOTO)

اولا :احلال الوسائط :(REPLACEABLE PARAMETERS:(1% 9%

يمكن أحلال وسائط من 1% الى 9% وعلى سبيل المثال :لنفترض أن لدينا الملف MAK.BAT

يحتوى على الامر

COPY 1% 2%

فعند المحث يمكن كتابة الامر

MAK C:\COMM\*.* A:

فى هذه الحالة سيحل الوسيط 1% محل C:\COMM\*.* والوسيط 2% محل A:

ويمكن التعويض بالوسائط من 1% وحتى 9% فلذا أردنا أكثر أستخدمنا الامر SHIFT وسنتعرف عليه لاحقا.

ثانيا :التحكم فى سريلن البرنامج :CONTROLLING PROGRAM FLOW

لكى نزيد من مرونة ملفات الباتش يمكننا أستخدام الامر المشروط IF لتنفيذ أوامر مختلفة تحت ظروف مختلفة .

والامر GOTO للانتقال الى اىجزء من البرنامج

وباستخدام أحلال الوسائط مع الامرين السابقين يمكن أداء مهام معقدة

الامر IF:

اذا أذا أردت ان تنفذ امر(اوامر)تحت شرط(شروط) معين فاستخدم الامر IF فعلى سبيل المثالننشئ ملف باتش يسمى M2 وبه الامر التالى و الذى يبدا برنامج EDIT

IF "1%" == "W"  C:\

EDIT

فى هذا المثال سيقوم الوسيط بمقارنة المدخل فاذا كان مطابق للحرف W سيفتح البرنامج وغير ذلك سيتجاهل هذا الامر

ولتنفيذ الامر نكتب امام المحث

M2 W

*العلامة == معناه أن الوسيط يجب أن يساوى القيمة

**يجب أن يكتب البرنامج التنفيذى فى سطر لوحده

*** يجب أن تكون ملفات الباتش فى مجلد واحد وهو الذى نعمل عليه أو أن نكتب المسار كاملا

الامرGOTO:

وهو للتوجيه الى أجزاء مختلفة من سطور الاوامر فى نفس البرنامج

مثال:

echo off

rem goto example

goto skipdown

echo both of these echo commands

echo will be skipped

:skipdown

cls

فى هذا المثال أنتقلنا الى السطر skipdown ولكى يتعرف عليه الامر goto يجب ان نضع نقتطين : قبل الكلمة المرادة.

-----------------

اليك هذا المثال الذى يجعل الشاشة تجرى امامك

echo off
:m
echo ******* WELCOME TO MAHMOUD COMPUTER WORLD *******
echo ******** WELCOME TO MAHMOUD DOS WORLD *******
goto m

----------------

دمج if وgoto:

e.g.

echo off

if"1%" =="a" goto chess

rem

rem***************************************************

rem if the user doesnot type a , run checker.

rem

cd\games\check

checker

rem skip over chess by jumping to the line labeled  :end.

goto end

rem

rem***************************************************

rem if ms-dos jumps to this label, the user wants chess.

rem

:chess

cd\games\chess

cmate

rem the following line marks the end of the batch program.

:end

 

-----------------------------------------------------------------------------------------------------------------

أنشاء قوائم نظام:

لنفترض انك تريد أن تنشىء قائمة تحتوى على مجموعة أوامر وملفات تفتحها دائما ولاتريد أن تكتب كل مرة الامر

لنفرض انك تفتح برنامج المحرر (edit) كثيرا وبرنامج (scandisk) والمسجل (register)  وظبط الوقت (time) والتاريخ (date)

أو تذهب الى الويندوز بعد أن تنتهى بأعمالك على الدوس

لذا فمن المفضل أنشاء قائمة بمجرد الضغط على زر يقوم هو بما نريد.

والقائمة السابقة تكون على الشكل

1-open edit

2-run scandisk

3-open register

4-adjust time

5-adjust date

6-goto windows

والان كيف ننشى هذا الملف الذى بمجرد أن نضغط على 1 يعمل المحرر و2 يعمل الفحص و3 يفتح المسجل .............ألخ

سنقوم بانشاء 7 ملفات باتش

الاول وهو الملف الرئيسى الذى سيقوم بعرض الجدول ثم

واحد لفتح المحرر-الثانى لفتح الفاحص-الثالث-للمسجل..............ألخ

أنشاء الملف الرئيسى

echo off

cls

echo.

echo **** THIS IS A LEARNING PROGRAM ****

echo.

echo.

echo 1-open edit

echo.

echo 2-run scandisk

echo.

echo 3-open register

echo.

echo 4-adjust date

echo.

echo 5-adjust time

echo.

echo 6-goto windows

echo.

echo.

ثم نسمى هذا الملف باى اسم نريده بالمتداد bat وليكن m.bat

 الملف الاول الذى يفتح المحرر.

echo off

cls

c:\

edit

m

ثم نحفظهبالاسم 1.bat ولاحظ انناوضعنا cls لمسح الشاشة و نهينا السطر بالحرف m وهذا يعنى أنه عند الخروج من البرنامج يقوم بعرض الملف m.bat

لتظهر لنا لوحة الاختيارات مرة أخرى.

الملف الثانى : تشغيل برنامج الفحص

echo off

cls

c:\

scandisk

m

ويحفظ الملف 2.bat

الملف الثالث : فتح  المسجل

echo off

cls

c:\

regedit

m

ويحفظ 3.bat

الملف الرابع:ضبط الوقت

 

echo off

cls

c:\

time

m

ويحفظ بالاسم 4.bat

الملف الخامس : ضبط التاريخ

echo off

cls

date

m

ويحفظ بالاسم 5.bat

الملف السادس : الخروج الى الويندوز

echo off

cls

cd c:\windows\win

 

ويحفظ بالاسم 6.bat

حسنا أما تضع هذه الملفات على الدليل الام أوداخل مجلد معا

--------------------------                   -----------------------------------                   --------------------------

اليست الطريقة السابقة مملة ! نعم سهلة لكنها بالنسبة لك مملة بصفتك خبير فى الدوس !!

فهل هناك طريقة أخرى؟

الاجابة نعم باستخدام الامر if وgoto والوسائط

الطريقة الثانية :

 

 

 

 

 

 

 

     

الرئيسية