الدرس 10 █▓▒░ دورة كتابة الملفات الدفعية : التعامل مع العمليات processes
التعامل مع العمليات في الملفات الدفعية
السلام عليكم ورحمة الله و بركاته
و أعتذر عن التأخر في اصدار هذا الدرس بسبب انشغالي و ظروف الدراسة
اليوم سنتكلم عن العمليات processes و الأوامر التي تلزمنا للتعامل معها :
تعليمة taskkill
تستخدم هذه التعليمة لإنهاء برنامج ما من البرامج التي تكون قيد التشغيل و التي يمكن الوصول لها عادة بالطريقة التالية :
نضغط بالزر اليمين في أي مكان فتظهر قائمة بعنوان إدارة المهام ثم ننتقل إلى قسم العمليات
وبعدها يمكن الضغط بالزر اليمين على أي عملية ثم اختيار إنهاء العملية
و لكن نحن يهمنا الطريقة التي تتم عن طريقة ملف دفعي batch file
و الأمر الذي سنستخدمه هو taskkill و كما تعودنا في الدروس السابقة هناك متغيرات
تستخدم مع التعليمة و اختصاراً للتعقيدات سنهتم بأهم طرق استخدام هذه التعليمة
لنفترض أننا فتحنا برنامج المفكرة notepad و نريد إنهاء هذه العملية عن طريق ملف دفعي و إغلاق المفكرة
سنستخدم لأداء هذه المهمة الأمر التالي :
taskkill /f /im notepad.exe
و هي الطريقة الأكثر شيوعاً و استخداماً مع العملياتو المتغيرات التي استخدمناها هي
f = forcefully أي لإنهاء العملية بشكل قسري
im = image name و هي لاستخدام اسم العملية كما فعلنا في مثالنا حيث كتبنا اسم العملية و هو notepad
و يمكن معرفة اسم أي عملية مفتوحة من خلال إدارة المهام و عادة يكون اسم العلمية هو اسم الملف الذي نشغله حتى يفتح البرنامح
مثال آخر :
كود إنهاء برنامج fire fox متصفح الانترنت
taskkill /f /im firefox.exe
ملاحظة :
قد يكون اسم أحد العليمات أكثر من كلمة و عندئذ نستخدم قوسي التنصيص
taskkill /f/im "ava find.exe"
طريقة أخرى لاستخدام التعليمة :لإنهاء عمليات عن طريق معرفة عناوينها process ID
طريقة قليلة الاستخدام لكن لنذكرها حتى نعرفها
مثال :
لإنهاء العملية التي قيد التشغيل و التي عنوانها 1296 نكتب الأمر :
taskkill /f /pid 1296
لا شك أن هناك غموض عن هذا الرقم 1296 و من أي جاء و ما هولنشرح ذلك
أولاً قم بتحميل البرنامج التالي اسمه ProcX
الحجم 55 ك ب
رابط التحميل :
download
أو :
http://www.multiupload.com/5KPMZ33KT0
الآن شغل البرنامج
و سترى العمليات كافة التي تعمل مع أسمائها وعناوينها :
مثا ل ثاني
لإنهاء العملية snagit32.exe
يمكن استعمال أحد الطريقتين
taskkill /f/im snagit32.exe
أو
taskkill /f /pid 3424
= يمكن أيضاً معرفة عنوان أي عملية بدون برامج وسيطة عن طريق تعليمة tasklist المشروحة في هذا الدرس في الأسفلمساوئ هذه الطريقة :
إن عنوان العملية متغير كلما تم فتح البرنامج
مثلاً في المثال السابق كان عنوان العملية 3424 و عند إغلاق البرنامج و فتحه سيأخذ عنوان آخر
ملاحظة :
لإنهاء عملية من عمليات النظام و التي لم ينجح انهاؤها مع المتغير /f/im
نستخدم الكود التالي :
taskkill /s xxx.exe
حيث xxx حسب اسم العمليةو هذه قليلة الاستخدام
تعليمة tskill
أيضاً هي من التعمليات التي تقوم بإنهاء عملية ما
و لكي لا نطيل الحديث عنها فإن استخدام الأمر taskkill أفضل منها للتعامل مع كل عملية على حده
و لكن وجدت فيها طريقة لم تنجح مع متغيرات taskkill و هي طريقة لإنهاء كافة العمليات المفتوحة
و لن نتحدث عن طرق استخدامها الأخرى للسبب الذي ذكرت
طريقة إنهاء كافة العمليات المفتوحة processes عن طريق هذا الأمر
tskill /a *
وبعدها سيعمل سطح المكتب و سنجد أن هناك عداداً لإيقاف تشغيل الكمبيوتر ويمكن إلغاء هذا العداد بكتابة الأمر
shutdown -a
يكتب في قائمة ابدأ ثم تشغيلأو في اختصار
أو في ملف دفعي
وعند تنفيذه سيلغى العداد
( سنذكرها بشيئ من التفصيل لاحقاً )
مما يفيد كثيراً مع هذه التعليمة في التعامل مع الفيروسات فكثير منها استطعت معالجته بعد تطبيق أمر إيقاف كافة العمليات المفتوحة لأن الفيروس عادة يكون عملية من العمليات تضع القيود
مثلاً قد يكون هناك فيروس يمنعك من تثبيت مكافح فايروس على الجهاز أو يعيد اخفاء الملفات بعد تصحيحها من محرر التسجيل أو يعطل إدارة المهام أو ... الخ
ولكي ننهي كافة العمليات المفتوحة نطبق هذا الأمر و بعدها يمكننا التصرف بحرية بعيداً عن قيود الفايروس التي و ضعها علينا
تعليمة tasklist
تستخدم هذه التعليمة بكل بساطة لمعرفة العمليات المفتوحة في النظام وعناوينها
وبعض المعلومات الإضافية الأخرى
طريقة الاستخدام
فقط نكتب الكود التالي :
tasklist
يمكن عدم إظهار السطر الأول بكتابة التعليمة كالتالي :
tasklist /nh
لتشغيل العمليات من خلال الملفات الدفيعة نستخدم :الأمر call
رأينا في التعليمات السابقة كيفية إنهاء و إغلاق العمليات
و لكن كيف يتم تشغيل البرامج و العمليات في الملفات الدفعية ؟
لنشرح من خلال مثال :
call "C:\Program Files\Babylon\Babylon-Pro\Babylon.exe"
في هذا الأمر يتم تشغيل برنامج Babylonحيث وضعنا بين الأقواس " " مسار البرنامج مع اسمه و امتداده الكامل
و بالنسبة للعمليات الأساسية في النظام يكفي وضع اسم الملف التنفيذي للبرنامج
مثال :
لتشغيل برنامج الرسام نكتب
call mspaint
وكما لاحظتم يكفي الاسم بدون الامتداد أيضاًو لا أخفيكم سراً أنه يكفي كتابة اسم البرنامج
أي لتشغيل برنامج الرسام يكفي أن نكتب في ملف دفعي الأمر التالي
mspaint
وذلك فقط في العمليات التابعة للنظامأي التي توجد ملفاتها في المجلد system و system32 و windows
تطبيق :
اكتب برنامجاً يقوم بإنهاء مستكشف ويندوز explorer ثم يقوم بتشغيله
لاحظتم في الدرس الماضي كيف احتجنا لمثل هذا الأمر من أجل تطبيق تغييرات محرر التسجيل registry بدون أن نقوم بعمل تسجيل خروج أو إعادة تشغيل
ويمكن كتابة الكود بالطريقة التالية
taskkill /f /im explorer.exe
call explorer.exe
ويمكن كتابة الكود بطريقة أفضل مع تعليمة اسمها starttaskkill /f /im explorer
@start "" /i explorer
وهذه أنصح بهابالنسبة لتعليمة
start
احفظوا هذه الصيغة لاستعمالها مع تطبيقات النظام فهي أفضل من callو المتغيرات هذه هي الأمثل
ختاماً :
بقي أمر أخير أود ذكره وهو أن نقوم بزيادة تعيين أفضلية برنامج ما لإعطائه المزيد من موارد النظام
حتى ما يعلق قبل غيره بحال حدثت مشكلة في الكمبيوتر وعلق
لنحلل الأمر التالي :
start /high c:\windows\notepad.exe
لمزيد من المعلومات حول تعيين الأفضليه تفضلوا بزيارة هذا الموضوع :http://www.tahasoft.com/vb/showthread.php?t=1879
شرحت فيه مسبقاً عن الاستفادة منها بعيداً عن الملفات الدفعية
شو رأيكم اليوم أن لا نضع وظيفة
لأي استفسار أنا في الخدمة
و السلام عليكم
في محرر التسجيل و طبعأً يمكن كتابة ملف دفعي يقوم بالعمل
ولمزيد من المعلومات عن الطريقة يمكن الاستفادة من الدرس 9
و بالنسبة لملف autoexec.bat بصراحة لم أجد أن له تلك الفائدة
وربما كثر الحديث عنه في المنتديات لسببن
- النقل بشراهة من منتدى لمنتدى دون معرفة مصداقة المحتوى و عمله
- و أيضاً يبدو أن autoexec.bat ذو كفاءة أفضل مع أنظمة التشغيل القديمة ما قبل XP
و ربما كلامي غير صحيح و إذا عندك معلومات دقيقة عنه ياريت تفيدنا
بس في سؤال كيف استطيع وضع ملف دفعي في قائمة بدأ التشغيل للوندوز
او بمجلد الستارت اوب بدون معرفة المستخدم
بتمنى تنزل موضوع عن ملف autoexec.bat بالتفصيل
السلام عليكم جميعا
أخي طه
هذا الإبداع ليس بغريب عنك
أتمنى أن يحفظك الله ويرعاك بعنايته ويبارك فيك
تحياتي لك وعيد سعيد إن شاء الله
بداية أهلاً وسهلاً بك بيننا
بالنسبة لتعليمة tskill هي لا تعمل مع windows 7
و أنا جربتها حين كتبت الدرس مع نظام sp2 و كانت تعمل
و بالنسبة للتعامل مع الملفات المضغوطة من خلال الملفات الدفعية صار الدرس قريب
سيتم الشرح ان شاء الله
و لكن لا داعي لكتابة السطر
http://support.microsoft.com/kb/315226/
و أضيف
الكلمات التالية :
CON, AUX, COM1, COM2, COM3, COM4, LPT1, LPT2, LPT3, PRN, NUL
تعتبر أسماء محجوزة في النظام
و لذلك لا يمكن بالطريقة العادية إشاء مجلد بأحد تلك الأسماء
أما عن طريق الدوز dos أو الملفات الدفيعة bat بكتابة الامر التالي إنشاء مجلد بأي من تلك الأسماء
و التعلية هي
بس النظام ما رح يتعامل مع المجلد بشكل طبيعي مثلاً ما بتقدر تقتحه من Run ..
ما بتقدر تحط فيه ملفات ..
أحياناً النظام بيتعامل معه على اساس انه ملف ..
وما بتقدر تقصه وتنسخه وما بعرف شو
وطبعاً ما بتقدر تحذفه بشكل اعتيادي ..
لذلك استخدم التعليمة التالية لإزالة المجلد con اللي انشأناه بالطريقة الأخيرة ..
طبعاً انا اخترت السواقة E لانشاء المجلد المذكور .. وممكن أي سواقة خارجية او مجلد داخلي..
و أضيف الاقتباس التالي :
ثانيا : أخي أنا جديد في هذا المنتدى و إن شاء الله سأقدم ما لدي من أجل خدمة الأخوة
ثالثا : أخي الحبيب جربت الأمر tskill و لم ينجح علما أني أعمل على ويندوز xp sp3
رابعا : أخي إذا ممكن سؤال
أنا حاولت كثيرا أن أكتب باتش فايل يقوم بالآتي
1- يعيد مكان وجود winrar
2- فك ضغط مجموعة من الملفات المضغوطة
كنت أكتب الأوامر على CMD و تنجح
لكن لما أضعها في ملف بات لا تنجح
بارك الله فيك أخي و جزاك الله خيرا
هل من الممكن شرح الفكرة
لقد وجدت هدا الأمر ولاكني لااعرق ماهو السر الدي يجعل المجلد غير قابل للحدف فمن فضلك إشرحلي إياه :
و أهلاً بعودتك sviiipar
و شكراً لك جليلو الله يجبر بخاطرك
نتمنى أن نكون قد حققنا شيئاً من الفائدة و السلسلة مستمرة بإذن الله
شكرا لك أخي زهر والله الدرس حلو زي صاحب الموضوع
يسعد اوقاتك يا معلمنا
اسف لانقطاعي هذه المدة الطويلة
لكن لصيق الوقت و هم الدراسة
اعذرونا يا اخوان
انا معك خطوة خطوة وعم طبق درس درس
وننتظر المزيد........eek:
الله يجزيك الخير يا معلمنا الكبير
والله استنينا الدرس بفارغ الصبر