المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : تعلم: كيفية صنع الملفات الدفعية - .bat -



mando362
11-06-2007, 22:24
برمجة الملفات الدفعية :
------------ --------- --
ملحوظة: يرجى نسخ الموضوع الى مستند نصي لان بعض الاوامر قد لا تظهر بشكل واضح نظرا لانها بالانكليزية

بشكل أساسي قررت كتابة هذا الموضوع عن كيفية انشاء الملفات الدفعية لانني مالل -بالعربي الفصيح دايق خلقي ومفيش شي اعمله لووول-


سقوم بتعليمكم الاساسيات السهلة الى الاوامر المتقدمة نسبيا فيها
مقدمة: اناء الملفات الدفعية ليست برمجة بحد ذاتها كلها شوية حروف بالدوز اللي بيفهما الكمبيوتر وبينفذها بسرعة كبيرة


المحتويات:
----------
1- نقاط البداية
1.1- @echo off
1.2- echo
1.3- echo.
1.4- مثال
2- بعض الاوامر البسيطة
2.1- pause, pause >nul
2.2- cls
2.3- goto, :label
2.4- مثال
3- اوامر التحكم بالملفات والمجلدات
3.1- copy
3.2- ren
3.3- del, erase
3.4- md, mkdir, rd
3.5- مثال
4- اوامر اكثر تقدما
4.1- parameters
4.2- if exist, if not exist
4.3- new files
4.4- choice
4.5- مثال
5- اوامر مساعدة ومفيدة
5.1- cd.., cd\, cd
5.2- type
5.3- @time, @date
5.4- call
5.5- dir, dir/p/w, dir *
5.6- مثال
6- ملاحظات للتذكر
6.1- اشياء مهمة
6,2- اشياء رائعة

1- نقاط البداية:
------------ ----
1.1- @echo off
اهم شيء يجب عليك عمله عند قيامك بكتابة شفرة ملف دفعي هو كتابة امر '@echo off' (بدون الـ ' ' )
اذا لم تقم بكتابته في بداية الشفرة فان جميع التعليمات ستظهر عند تشغيله بالاضافة الى ظهور اماكن النقل او التسمية يعني المسارات اللي عم تم فيها التغيرات لاحظ الصور
https://farvia.jeeran.com/batch/1.jpg

https://farvia.jeeran.com/batch/2.jpg


2.1- echo
اسهل شيء في ملف دفعي هو اظهار سطر نصي كل ما عليك فعله هو كتابة
'echo النص هنا'
(بدون الـ ' ') (ملحوظة: الدوز لا يقبل تكتب فيه عربي فخذ بالك من هذه النقطة لكن باستخدام محارف لغة الاسكي [ASCII=american standard code for information interchange] بيمشي الحال هيدا اذا كنت بتقدر تحفظ 255 محرف من الارقام الثلاثية والرباعية والثناية يعني مثلا 0266=enter !!
المهم خليك بالانكليزي هلق ونزل تحديث لمخك لوووول عشان تقدر تحفظ المحارف كلهم

3,1- echo.
مفيش شي مميز بس انها بتترك سطر فارغ وبتنتقل للي بعده تتكمل العملية

1.4- مثال
@echo off
echo This is my first batch file
echo.
echo Bye!

[ملحوظة: لكتابة اي ملف دفعي افتح مستند نصي جديد واكتب الشفرة فيه ثم اغلقه واعد التسمية لاي شيء المهم ينتهي بـ .bat بدل .txt]

2- بعض الاوامر البسيطة:
------------ --------- -
2.1- pause, pause >nul
اذا كنت بدك ملفك يتوقف مبدأيا ويتابع عمله عندما ينقر المستخدم على اي زر استخدم امر
pause
واللي بيظهر للمستخدم لما بيوصل لعنده
Press any key to continue
اما اذا بدك ياه يوقف مبدأيا بدون انه يظهر الرسالة الخاصة بالتنبيه فاستخدم الامر
pause >nul
بسه يك المستخدم بجوز يتلبك وما يعرف شو يساوي اذا شافه واقف بدون اي شي المهم اختار اللي بيناسبك

2.2- cls
في اثناء تشغيل الشفرة ممكن تكون كاتب ملف طويل فلذا بتلاقي الملف امتلات الصفحة فيه فاذا كنت بتريد تمسح المكتوب وتكمل باول سطر استخدم هيدا الامر

2.3- goto, :label
اذا كنت بتريد من ملفك انه يتقدم لمنطقة او يرجع لامر سابق فاول شيء لازم تساويه هو انك تحدد المنطقة اللي بدك ياه ينتقل الها بالامر :label
لاحظ انك تغير label باي كلمة بتريدها مش مهم تستخدمها نفسها استخدم كلمات تدل مثلا على المنطقة اللي بتريده ينتقل الها , :cheat
او :end
الخ بعدها بتستخدم الامر goto cheat
او goto end
او goto start
بس لا تنسى تحدد المنطقة بـ :start
اذا ما غهمت لحد هلق انظر الى المثال

2.4- مثال

@echo off
echo This is my first batch file
echo.
pause >nul
cls
:Label1
echo Time to repeat for ever
pause >nul
goto Label1

3- اوامر التحكم بالملفات والمجلدات:
------------ --------- --------- -----
3.1- copy
استخدمه لجعل ملفك الدفعي يقوم بنسخ ملف من مسار ويلصقه في مسار محدد اخر 'copy FileName NewFileName'

3.2- ren
لاعادة تسمية ملف الى تسمية اخرى 'ren FileName NewFileName'

3.3- del, erase
استخدمه لحذف ملف 'del FileName' او 'erase FileName'

3.4- md, mkdir, rd
لانشاء مجلدات جديدة استخدم الامر 'md NewDirectoryName' او 'mkdir NewDirectoryName'
ولحذف مجلد 'rd DirectoryName'
[ملاحظة: لا يمكن حذف اي مجلد اذا لم يكن فارغا تماما]

3.5- مثال

@echo off
echo This is my first batch file
echo.
echo Smash your keyboard to continue. . .
pause >nul
cls
md C:\Xacker
copy C:\autoexec. bat C:\Xacker\autoexec. bat
echo Check C:\Pleb\autoexec. bat (don't delete it). Press a key. . .
pause >nul
ren C:\Xacker\autoexec. bat C:\Xacker\Readme. txt
echo Now check it. Press a key. . .
pause >nul
del C:\Xacker\Readme. txt
rd C:\Xacker
echo Now it's gone (and the directory). Press a key. . .
pause >nul
:start
cls
echo You can close me now
pause >nul
goto start

4- اوامر اكثر تقدما:
------------ --------
4.1- parameters
يمكنك جعل ملفك الدفعي يتفقد محارف خاصة. لعمل هذا استخدم هذا الامر على شكل مشابه للتالي:
'If "%1"=="Parameter here" command here'
على سبي المثال ان كان اسم ملفك الدفعي temp.bat وكنت قد استخدمت الامر التالي:
'If "%1"=="Hello" echo hello to you to'
فعندما يقوم احد المستخدمين بكتابة temp.bat Hello في الدوز فانه يتلقى جوابا
hello to you too


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

4.2- if exist, if not exist
لجعل ملفك الدفعي يتفقد ان كان ملف ما موجود في مسار ما استخدم هذا الامر على الشكل:
'if exist FileName Command'
او لتفقد ان لم يكن موجودا (عكسية) استخدم الشكل:
'if not exist FileName Command'

4.3- New Files
يمكنك جعل ملفك الدفعي يقوم بانشاء ملفات استخدم الامر على الشكل:
'echo File*******s > FileName.FileExtnes ion'
هذا هو شكل الامر لانشاء الملفات حيث نلاحظ انه استخدمنا امر كتابة الاسطر يتبعه فراغ ثم محتويات الملف ثم فراغ ثم > ثم فراغ ثم مسار الملف واسمه مع الامتداد
الان على فرض اننا نريد ان نضيف سطر اخر الى السطر الذي بعده فاننا نضاعف فقط عدد الاسهم لتصبح >> وللسطر الثالث >>> وهكذا
[ملاحظة: ان قمت باضافة كلام للسطر الاول ثم اردت ان تضيف كلاما للسطر الثالث يجب استخدام امر السطر الثاني ولا تضيف محتويات ثم قم باضافة الامر للسطر الثالث فلو تخطيت امر السطر الثاني منتقلا للثالث لوجدت الكلام موجودا على السطر الثاني كونه فارغ بدون اي امر ضمن الشفرة .. جرب وسترى النتائج]
تفقد المثال لمزيد من الفهم

4.4- Choice
هذا الامر يصعب فهمه قليلا في البداية لكن نهاية ستجد انه سهل جدا ومفيد في نفس الوقت.
يمكنك بواسطته جعل المستخدم يحصل على خيارات لنقل مثلا انقر 1 لاغلاق التطبيق او انقر 2 للمتابعة فكيف يتم ذلك؟
على الشكل التالي:
'choice /c:Choices'
يجب استبدال كلمة Choices بارقام فقط ولا يجب ان تحوي بينها فراغات
الان يبدا التعقيد . عد كم خيار ستعطي للمستخدم ثم اكتب الامر التالي:
'If errorlevel Number Command'
عدد الخيارات يحدد عدد اوامر الـ errorlevel -سيظهر واضحا في المثال-
الـ Command هو الامر الذي سيتم تنفيذه اذا تحقق الشرط
تفقد المثال فهو الوحيد القادر على ايضاح كل شئ

4.5- مثال

@echo off
If "%1"=="Cheat" goto cheat
If not exist C:\autoexec. bat echo Hey! Did you know that autoexec.bat don't exist!?
If exist C:\autoexec. bat echo autoexec.bat exists!
echo.
echo What would you like to do today?
echo 1 - Get stuck in a neverending loop
echo 2 - Have all the money in the world
echo 3 - Make readme.txt
echo 4 - Quit
choice /c:1234
if errorlevel 4 goto end
if errorlevel 3 goto mkfile
if errorlevel 2 goto money
if errorlevel 1 goto loop
:loop
cls
:startloop
echo Looping for ever. . .
pause >nul
goto startloop
:money
echo Tough, it's my money!
goto end
:mkfile
echo Making readme.txt . . .
echo You are reading this file > readme.txt
echo Did you know that? >> readme.txt
echo I bet you didn't >>> readme.txt
echo You smell >>>> readme.txt
cheat:
echo You shouldn't cheat, you cheater!
:end


5- اوامر مساعدة ومفيدة:
------------ --------- --
5.1- cd.., cd\, cd
اذا اردت تغيير المسار الحالي الذي يقوم بالعمل عليه هناك هذه الاوامر لعمل هذا
لترجع مجلدا واحدا الى الوراء من مجلدك الحالي استخدم الامر cd..
اذا اردت الانتقال الى مجلد اخر موجود ضمن المجلد الذي انت فيه استخدم الامر التالي بالشكل:
'cd DirectoryName'
اذا اردت الانتقال الى بداية السواقة التي انت فيها اي الى الطبقة الاولى منها استخدم الامر :
'cd'
تفقد المثال لمزيد من اتقانهم

5.2- type
يستخدم فقط لاظهار محتويات ملف اخر في الدوز مثلا نصي او ملف باتش اخر !

5.3- @time, @date
يمكنك جعل المستخدم يعيد ادخال الوقت باستخدام امر '@time'
او التاريخ '@date'

5.4- call
لفتح ملف اخر موجود ضمن الكمبيوتر استخدم هذا الامر
[ملحوظة: حالما ينتهي الملف الدفعي من فتح ذلك الملف فانه يتابع تنفيذ شفرته]
[ان اردته ان يقوم بفتح صفحة ويب على سبيل المثال استخدم الشكل التالي:
'Call c:\progra~1\ intern~1\ Iexplorer. exe https://www.fatal- terror.cjb. net'
]
[ملحوظة: المسار في الملفات الدفعية لا يمكن ان يكون كما هو في الويندوز فللوصول الى مجلد internet explorer مثلا الموجود ضمن مجلد program files على السواقة c يجب استخدام الامر مختصرا على الشكل :
'Call c:\progra~1\ intern~1'
وليس :
]Call c:\program files\internet explorer'
للسهولة عد الستة حروف الاولى من اسم المجلد واتبعها بالمدة بالنقر على shift+ذ ثم رقم واحد ان لم يكن هناك اي مجلد اخر ضمن المسار يبدا بالحروف نفسها الاولى

5.5- dir, dir/p/w, dir *
لاظهار قائمة بكافة الملفات الموجودة في مجلد ما في مسار ما قم باستخدم الامر 'dir'
اذا كانت القائمة طويلة قلن تستطيع رؤيتها جيدا عندها ايتخدم الامر 'dir/p/w'
اذا اردت ان تستعرض قائمة بنوع معين من الملفات التنفيذية مثلا exe
استخدم الامر : 'dir *.FileExtension' على الشكل:
'dir *.exe' او 'dir *.txt'

5.6- مثال

@echo off
echo All the files in this directory:
dir/p/w
pause
echo All the files in this drives directory
cd\
dir/p/w
pause
echo All the .exe in the windows directory
cd windows
dir *.exe


6- ملاحظات للتذكر:
------------ -----
6.1- اشياء مهمة
حاول البحث في نظامك عن الملفات الدفعية واستعرض الشفرة بالنقر على الملف نقرة يمين واختر تحرير او edit
معظم التروجانات تقوم بعمل ملف دفعي يعمل مع بدء التشغيل فان كنت على اطلاع على ملفاتك مستعرضا للشفرة يمكنك الوصول الى الملف الاصلي للتروجان لازالته
تذكرة: في ويندوز 98 لا يوجد الا ملف دفعي واحد في المجلد windows هو dosstart.bat اما ان وجد ملف اخر فاستعرض شفرته وحدد ان كانت مريبة او لا
للوصول الى كلفة الملفات الدفعية على نظامك اذهب الى ابدا - بحث - اكتب *.bat واعمل بحث في السواقة الخاصة بالنظام لتحصل عليهم
كل ما يتعلق بالملفات او بالمجلدات من تسمية وحذف وانشاء و و و يجب ان تحدد المسار فيه قبل اسم الملف او المجلد الامثلة توضح ذلك وكذلك امر call

6,2- اشياء رائعة
يمكنك الحصول على تطبيقات تقوم بتحويل ملفك الدفعي الى تنفيذي وهناك تطبيقات تحولها الى ملفات com لكن التنفيذية افضل
ان كنت تعرف محارف الاسكي فاعلم ان معظمها يتغير شكلا في الدوز هذا الامر لي بالمهم لكنه قد يجعل ملفك اكثر روعة

=-=-=-=-=-== -=-=-==-= -=-=-=-=- =-=-=-=-= -=-=-=
شكرا
الموضوع منقول للئفاده

Scorpion007
12-06-2007, 01:40
شكرا ماندو على الموضوع بجد اوامر ممتازة

mando362
12-06-2007, 14:06
شكرا علي مرورك اخي الكريم

Fouadsoft
12-06-2007, 17:10
يا ماندو هو انت فى جروب EgyptEngineers دا موضوع منقول منه

Ahmed27
12-06-2007, 17:26
ماشاء الله فعلا موضوعك ممتاز اخى الحبيب.. مشكور

amna_ali
12-06-2007, 17:42
موضوع ممتاز وفقك الله اخي و كثر من امثالك


يا ماندو هو انت فى جروب EgyptEngineers دا موضوع منقول منه

كاتب المقال قد اوضح ان الموضوع منقول في نهاية موضوعه و نشكره على امانته و من الافضل دائما ذكر اسم صاحب المقال الاصلي ما امكن ذلك للامانة العلمية و لمنع الالتباس

mando362
12-06-2007, 18:12
يا ماندو هو انت فى جروب EgyptEngineers دا موضوع منقول منه

كما ذكرت في توقيعي اني قررت التنحي تماما .

Fouadsoft
12-06-2007, 22:33
كما ذكرت في توقيعي اني قررت التنحي تماما .

يا سيدى انا اللى كاتب الموضوع دة اساسا فى EgyptEngineers وغير كدة انا ناقلة بردة وانا اللى كاتب انة منقول فولا يهمك انا كنت بسأل بس و انت تشرف هناك و هنا:) و ميهمكش كلام الناس , و فى ناس تانية ردت عليك كويس و ايا كان كل شخص و ليه رأى فلازم نسمع بعض بس بشكل مهذب. وربنا يوفقك و سيبك ولا تنحى ولا حاجة خليك هنا معانا يا ماندوو

Fouadsoft
12-06-2007, 22:43
اة غير كدة العلم ليس حكر على شخص و اكيد احسنكم من تعلم العلم و علمة على مقياس القران والله اعلى و اعلم

mando362
13-06-2007, 00:39
اة غير كدة العلم ليس حكر على شخص و اكيد احسنكم من تعلم العلم و علمة على مقياس القران والله اعلى و اعلم

شكرا اخي الكريم علي هذا الموضوع الرائع . نعم انا عضو في جروب مهندسين مصر .
بالنسبه للنقل كل حاجه في حياتي منقوله علشان اريح كل العضاء انا هكتب في توقيعي الناقل .
تعرفو الرد ده انا ناقله . خلاص انا وصلت للحلقوم معايه بجد بجد بجد وصلت للحلقوم مع احترامي لك الاعضاء المحترمين الموقرين . هقول ايه(BB)(BB)(BB)(BB)(BB)(BB)(BB)(BB)(BB)(BB)
ارحموني ارحموني ارحموني يرحمكمن الله . انا بعد كده هعمل الموضوع ومش عاوز اي مشاركات فيه هقفله بجد هقفله سلام التنحي رحمه

Mo0o0o0o0ra
13-06-2007, 10:35
يا اخواني الشكر لكلاكم بس الشكر الاكبر لماندو لانه عرض الموضوع على المنتدى للاستفادة..........و اكيد ليك يامادمان1222 شكر كبير على اجتهادك في كتابتك و بحثك و علمك لهذه الاوامر و انا بحيكم انتم الاتنين على جهودكم...........كل واحد فيكم ساعد بشكل و ده شي جميل منكم,,,,,,,,,,,اعتبروه شغل جماعي و الغرض منه الفائدة لوجه الله ,,,,,,,,,,واظبوا على الاعمال الرائعة ديه دايما .........مستنين منكم الاروع..........ما تخلونا نستنا كتير

mando362
13-06-2007, 10:40
ولا اروع شكرا علي مرورك
وماذالت الدنيا بخير

amna_ali
13-06-2007, 10:42
شكرا اخي الكريم علي هذا الموضوع الرائع . نعم انا عضو في جروب مهندسين مصر .
بالنسبه للنقل كل حاجه في حياتي منقوله علشان اريح كل العضاء انا هكتب في توقيعي الناقل .
تعرفو الرد ده انا ناقله . خلاص انا وصلت للحلقوم معايه بجد بجد بجد وصلت للحلقوم مع احترامي لك الاعضاء المحترمين الموقرين . هقول ايه(BB)(BB)(BB)(BB)(BB)(BB)(BB)(BB)(BB)(BB)
ارحموني ارحموني ارحموني يرحمكمن الله . انا بعد كده هعمل الموضوع ومش عاوز اي مشاركات فيه هقفله بجد هقفله سلام التنحي رحمه


ليه ياخ mando كدة انت بس طول بالك و انشاء الله ما يصير الا كل خير
انت عضو نشيط و مميز و حرام تحرم اخوانك من مواضيعك الرائعة و كله في ميزان حسناتك ان شاء الله وان كنت لسة زعلان فيا سيدي حقك عليا و لك العتبى حتى ترضى

mando362
13-06-2007, 10:53
ليه ياخ mando كدة انت بس طول بالك و انشاء الله ما يصير الا كل خير
انت عضو نشيط و مميز و حرام تحرم اخوانك من مواضيعك الرائعة و كله في ميزان حسناتك ان شاء الله وان كنت لسة زعلان فيا سيدي حقك عليا و لك العتبى حتى ترضى

لا يا اخي انا نسيت الموضوع خلاص . والدليل علي ذلك قمت باضافه ثلاثه مواضيع جديده في قسم الشبكات .
وكلنا اخوه ومفيش اخ يزعل من اخوه وباذن الله الي الامام دوما .

REDA_INST
15-06-2007, 23:13
شكرا علي الموضوع
وانا عايز اقمول حاجة هو الي كاتب الموضوع الاساسي هو مخترع الاوامر دي ولا تعلمها من مكان تاني او من حد تاني
يبقي لازم ننقل الي تعلمناه من غيرنا "خيركم من تعلم العلم وعلمه"

mando362
16-06-2007, 08:45
شكرا لك اخي علي الرد الرائع والمشاركه الاكثر من رائعه

M_Behery
09-07-2009, 15:33
شكراً لك يا ماندو علي هذا الموضوع الرائع

internetworld
09-07-2009, 21:15
جزاك الله كل خير