جدول المحتويات:

ملفات دفعية: بعض الأساسيات ..: 8 خطوات
ملفات دفعية: بعض الأساسيات ..: 8 خطوات

فيديو: ملفات دفعية: بعض الأساسيات ..: 8 خطوات

فيديو: ملفات دفعية: بعض الأساسيات ..: 8 خطوات
فيديو: How to Write a Batch File 2024, يونيو
Anonim
الملفات الدفعية: بعض الأساسيات…
الملفات الدفعية: بعض الأساسيات…

سيعلمك هذا Instructable بعض أساسيات كتابة الملفات المجمعة ، وسيوضح لك كيفية إنشاء لعبة تخمين الأرقام مع بعض التقلبات ، فقط لإبقاء الأمور ممتعة …

لقد تعلمت معظم مهارات موجه الأوامر ، وكل كتاباتي الدفعية من الإنترنت بشكل عام ، و Instuctables بشكل خاص. أود أن أشكر مستخدم Instructables Neodudeman على كتابه Instructables الرائع في كتابة الدُفعات. شكرا!

الخطوة 1: ما هو ملف دفعي؟

ما هو ملف دفعي؟
ما هو ملف دفعي؟

حسنًا ، ربما يعرف معظم قرائي بالفعل ما هو الملف الدفعي ، ولكن فقط في حالة….

الملف الدفعي عبارة عن مجموعة (دفعة) من أوامر MSDOS التي يتم تنفيذها بالتسلسل عند تشغيل الملف الدفعي. تبدأ الملفات الدفعية كملفات.txt في المفكرة ، وتصبح ملفات قابلة للتنفيذ عندما تقوم بحفظها كشيء بامتداد.bat. لذلك ، كل ما تفعله هو كتابة ملف في برنامج "المفكرة" ، ثم حفظه باسم ، على سبيل المثال ، "instructable.bat". بمجرد وضع ملف.bat في نهاية اسم الملف ، سيظهر ملف جديد لطيف ، يسمى كل ما تسميه ، بأيقونة لطيفة المظهر. حسنًا ، الآن بعد أن عرفنا ما هي هذه الملفات المجمعة ، فلنبدأ الكتابة!

الخطوة 2: الأوامر الأساسية

أوامر أساسية
أوامر أساسية
أوامر أساسية
أوامر أساسية
أوامر أساسية
أوامر أساسية
أوامر أساسية
أوامر أساسية

حسنًا ، ستحتاج إلى تعلم بعض الأوامر. لذلك أولاً ، افتح موجه أوامر MSDOS. افتح نافذة البداية ، وانقر فوق تشغيل ، واكتب "cmd.exe" ثم انقر فوق تشغيل. أولاً ، سننظر إلى المتغيرات. المتغيرات هي أرقام أو كلمات أو أشياء أخرى تختلف (من الواضح إلى حد ما). موجه الأوامر له وظيفة متغيرة. يحتوي على بعض المتغيرات التي تم تعيينها بالفعل ، مثل الوقت والتاريخ وبعض المتغيرات الأخرى. ومع ذلك ، يمكنك ضبط معظم المتغيرات بنفسك. انقر فوق نافذة موجه الأوامر ، واكتب: SET variable = random لا يهم حقًا إذا كنت تستفيد من "SET" أم لا ، لكني أحب أن أستغل كل أوامري بالأحرف الكبيرة ، خاصة عند كتابة الملفات الدفعية. إنه يجعل من السهل معرفة ما تفعله. اضغط الآن على مفتاح الإدخال. خير لكم! لقد قمت بتعيين المتغير الأول الخاص بك! لكن ماذا يمكننا أن نفعل بها؟ من يهتم إذا كان كل ما يمكننا فعله هو ضبط المتغير بشكل صحيح؟ حسنًا ، كما اتضح ، يمكننا أن نفعل أكثر من ذلك بكثير ، لكن أولاً ، دعنا نحاول جعل الكمبيوتر يخبرنا بالمتغير الذي تم تعيينه. حسنًا ، من أجل جعل الكمبيوتر يقرأ قيمة المتغير ، نكتب اسم المتغير ، في هذه الحالة ، "المتغير" ونضع الاسم داخل٪ العلامات ، مثل هذا:٪ variable٪. انطلق واكتب ذلك ، واضغط على Enter:٪ variable٪ خطأ غريب ، هاه؟ قال الكمبيوتر "لم يتم التعرف على" المتغير "كأمر داخلي أو خارجي ، أو برنامج قابل للتشغيل ، أو ملف دفعي." فلماذا أعطت هذا الخطأ؟ حسنًا ، في الأساس ، أعطت هذا الخطأ لأن موجه الأوامر يتعامل مع قيمة هذا المتغير كما لو كنت كتبته بنفسك. لذلك عندما كتبت٪ متغير٪ ، اعتقد الكمبيوتر أنك تخبره بتنفيذ الأمر "عشوائي". من الواضح أننا نحتاج إلى شيء آخر لمعرفة قيمة المتغير. هذا هو المكان الذي يأتي فيه أمر ECHO. يخبر أمر ECHO موجه الأوامر ببساطة أن يردد ، أو يقول ، كل ما كتبته بعد ECHO. لذا ، إذا كتبنا أمر ECHO قبل المتغير الخاص بنا ، فيجب أن نحصل على ما نريد: ECHO٪ متغير٪ هناك! الآن لدينا ما نريد! يقوم الكمبيوتر بطباعة "عشوائي". من الواضح أن هذه هي القيمة التي كتبناها للمتغير ، لذا فهي النتيجة التي أردناها. في الخطوة التالية ، سنتعلم المزيد عن المتغيرات وكيف يمكننا استخدامها.

الخطوة 3: استخدام الأمر SET والمتغيرات

باستخدام الأمر SET والمتغيرات
باستخدام الأمر SET والمتغيرات
باستخدام الأمر SET والمتغيرات
باستخدام الأمر SET والمتغيرات

حسنًا ، الآن بعد أن عرفنا ما هي المتغيرات ، ماذا يمكننا أن نفعل بها أيضًا؟ حسنًا ، يمكننا إجراء العمليات الحسابية ، ويمكننا استخدامها كشرط لكتابة البرامج والملفات الدفعية ، ويمكننا إجراء العمليات الحسابية الأساسية ، ويمكننا تنفيذ الأوامر ، وأكثر من ذلك بكثير. لن ندخل في كل ما يمكنك القيام به مع المتغيرات ، لكننا سنناقش بعض الجوانب المهمة للمتغير funtion. أولاً ، ينتج الأمر SET من تلقاء نفسه فقط متغيرات السلسلة. هذا يعني أنه لن يضيف أو يقوم بأي عمليات حسابية أخرى. إذا طلبت من الكمبيوتر إضافة 1 إلى متغير بقيمة 1 ، فسيعطيك القيمة 1 + 1. إذا أردنا أن يضيف الرقمين فعليًا ، فنحن بحاجة إلى وضع "/ a" بعد الأمر SET. لذلك ، نكتب: SET / a varible = (value) الآن ، لنفترض أننا نريد وضع متغير في الملف الدفعي الذي سيوفره المستخدم. قد نرغب في القيام بذلك إذا كنا نحسب القيم وفقًا لصيغة ، أو ، في حالتنا ، إذا أردنا أن يخمن المستخدم رقمًا توصل إليه الكمبيوتر. لإنشاء متغير محدد من قبل المستخدم ، نضيف a / p بعد الأمر SET ، ونترك المنطقة بعد = blank: SET / p variable = ها أنت ذا! متغير محدد من قبل المستخدم! إذا وضعنا هذا السطر في ملف دفعي ، فسيتم تشغيل الدُفعة حتى تصل إلى هذا السطر ، ثم تنتظر إدخال المستخدم قبل المتابعة. الشيء الرائع الآخر بخصوص / p هو أنه يلغي تمامًا / a. عندما نقوم بتضمين a / p يمكننا حذف / a. الشيء التالي الذي سنتعلمه عن إنتاج متغيرات عشوائية. إذا أردنا أن يختار الكمبيوتر رقمًا عشوائيًا لمتغير ، فنحن ببساطة نكتب الأمر SET ، متبوعًا بالمتغير ، ثم نضبط المتغير على مساوٍ٪ RANDOM٪. مرة أخرى ، ليس من الضروري أن يكون رأس مال ، لكني أحب أن أفعل ذلك على أي حال. لذلك ، نكتب: SET / a variable =٪ RANDOM٪ من الواضح أن هذا ليس متغيرًا محددًا من قبل المستخدم ، لذلك نقوم بتضمين / a. رائع! والآن نحن نعرف كيف ننتج عددًا عشوائيًا! لكن ما مدى عشوائيتها؟ حسنًا ، اتضح أن الكمبيوتر يختار رقمًا بين 0 وفي مكان ما حوالي 37000. لست متأكدًا من الرقم الدقيق. لكن ماذا لو أردنا رقمًا أصغر؟ لنفترض ، كما في Instructable ، أننا نريد رقمًا يمكن التحكم فيه لشيء مثل لعبة التخمين؟ حسنًا ، هذا هو المكان الذي يأتي فيه الأمر IF….

الخطوة 4: أوامر IF و GOTO. القوة في يد كاتب الدُفعات

أوامر IF و GOTO. القوة في يد كاتب الدُفعات
أوامر IF و GOTO. القوة في يد كاتب الدُفعات

لذلك ، نريد إنتاج رقم يمكن التحكم فيه. لنفترض أننا نريد إنتاج رقم عشوائي بين 1 و 20. حسنًا ، من السهل تحديد ذلك ، لكن القيمة العشوائية تختار رقمًا بين 1 و 37000. هذا ما سنستخدم IF من أجله. يشير الأمر IF بشكل أساسي إلى أنه إذا حدث شيء ما ، أو إذا كان هناك شيء يساوي ، أو لا يساوي ، قيمة معينة ، فحينئذٍ تفعل ذلك. لذلك ، يعيّن IF الأوامر الشرطية. نريد إنتاج رقم أقل من عشرين ، لكنه أكبر من واحد ، من الواضح أننا سنبدأ بإخبار الكمبيوتر باختيار رقم عشوائي ، ولكن بعد ذلك سنحتاج إلى أن نكون قادرين على إخباره باختيار رقم جديد رقم إذا كان الرقم الذي يختاره لا يتناسب مع متطلباتنا. هذا هو المكان الذي يأتي فيه الأمر GOTO. GOTO ببساطة يخبر الكمبيوتر بالذهاب إلى ملصق معين في الكود. تبدو التسميات بهذا الشكل:: pickAy كلمة موضوعة بعد النقطتين تصبح تسمية يمكننا الوصول إليها باستخدام الأمر GOTO. لذا ، إذا أردنا الانتقال إلى قسم الكود مع تسمية "انتقاء" أعلاه ، فنحن ببساطة نكتب: GOTO pickAlright ، فلنستمر في الترميز الخاص بنا. لقد أخبرنا الكمبيوتر بالفعل باختيار رقم عشوائي ، لذلك كتبنا: SET / a answer =٪ RANDOM٪ الآن نريد سحب هذا الرقم إلى نطاق أصغر. لذلك سنقوم باستدعاء الأمر IF. شيء من هذا القبيل يجب أن يؤدي الحيلة: IF٪ answer٪ GTR 20 GOTO pick هذا يخبر الكمبيوتر باختيار GOTO إذا كانت الإجابة GReaTer أكثر من 20. يمكننا أيضًا وضع أي من هذه الشروط على أمر IF هذا: EQU - EqualNEQ - Not EqualLSS - أقل ThanGTR - أكبر من ThanLEQ - أقل من أو يساوي ToGEQ - أكبر من أو مساوٍ لذلك ، مع IF ، GOTO ، الملصقات ، وهذه الاختصارات ، يمكننا التلاعب بالملف الدفعي الخاص بنا بأي طريقة نختارها. حسنًا ، لقد حصلنا الآن على رقم عشوائي أقل من عشرين ، وهذا ما حصلنا عليه حتى الآن: pickSET / a answer =٪ RANDOM٪ IF٪ answer٪ GTR 20 GOTO pickNow ، دعنا نتأكد من أن الكمبيوتر لا يفعل t اختر 0 للإجابة.: اختر مجموعة / إجابة =٪ عشوائي٪ IF٪ answer٪ GTR 20 يجب أن اخترIF $ answer٪ EQU 0 اذهب اختيار حسنًا! الآن لدينا عدد قابل للاستخدام بين 1 و 20. لننتقل إلى لحم الدُفعة.

الخطوة 5: لحم لعبتنا

لحم لعبتنا
لحم لعبتنا

حسنًا ، لدينا رقم عشوائي. نريد أيضًا حساب عدد التخمينات التي يقوم بها لاعبنا ، لذلك سنقوم بتعيين متغير آخر: SET / a guessnum = 0 الذي يضبط متغير geussnum على صفر ، وقد أعطيناه المعلمة / a ، لذلك سنتمكن من إضافة إليها في كل مرة يخمن فيها المستخدم. لدينا عدد عشوائي ، وقد حددنا عدد التخمينات. نحتاج الآن إلى بعض التعليمات ، ونحتاج إلى بعض مدخلات المستخدم لرقم التخمين. يجب أن تفهم معظم هذا الآن ، لذا سأريكم فقط الكود:: startECHO سأفكر في رقم ECHO أفكر … ضبط / a GuessNum = 0 (هذا ECHO هذين السطرين و يحدد عدد التخمينات إلى 0): pickASET / إجابة =٪ RANDOM٪ IF٪ Answer٪ GTR 20 GOTO pickAIF٪ Answer٪ EQU 0 GOTO pickAECHO أفكر في رقم بين 1 و 20ECHO احزر ما أفكر فيه من. (يتكرر هذا القسم حتى يضبط رقمنا العشوائي ، ثم يضبط رقمنا العشوائي تعليمات لاعبنا): RetrySET / p Guess = IF٪ Guess٪ LSS٪ Answer٪ ECHO رقمي أعلى. IF٪ Guess٪ GTR٪ Answer٪ رقم ECHO الخاص بي أقل. IF٪ Guess٪ ==٪ Answer٪ GOTO ENDECHO. SET / a GuessNum =٪ GuessNum٪ + 1GOTO إعادة المحاولة (هذا القسم يخبر الكمبيوتر أن يطلب إدخال المستخدم ، ثم يتكرر باستمرار حتى يختار المستخدم الرقم الصحيح ، ثم ينتقل إلى التسمية END): ENDECHO أنت على صواب! كانت الإجابة٪ Answer٪ ECHO استغرق الأمر٪ GuessNum٪ Guesses. ECHO. PAUSECLSECHO هل ترغب في اللعب مرة أخرى؟ العب٪ GTR y GOTO playagainIF٪ play٪ LSS y GOTO playagainIF٪ play٪ GTR n GOTO playagainIF٪ العب٪ LSS n GOTO playagain (هنا قسم النهاية لدينا. هذا يخبر المستخدم بعدد التخمينات التي أخذها ، ثم يسأل عما إذا كانوا يرغبون في ذلك للعب مرة أخرى. لاحظ أنه يمكننا استخدام EQU و GTR و LSS مع الأحرف أيضًا.) حسنًا! إذا قمت ببساطة بنسخ هذا الرمز ، فستحصل على لعبة تخمين شرعية. هذا ليس خيالًا حقيقيًا ، ولكن مهلا ، إنه أفضل مما يمكن أن يفعله معظم الناس. لكننا سنضيف لمسة صغيرة ، فقط لنجعل الأشياء ممتعة …

الخطوة 6: تويست

تطور
تطور
تطور
تطور
تطور
تطور

الآن ، لدينا لعبة عمل الآن ، لكننا نريد أن نجعلها أكثر إثارة قليلاً. ماذا عن إضافة بعض الحوافز للاعبنا لتخمين الرقم الصحيح؟ ماذا عن القيام بشيء مثل.. إيقاف تشغيل أجهزة الكمبيوتر الخاصة بهم إذا لم يخمنوا الرقم؟ سيكون ذلك رائعًا! حسنًا ، سنضيف الآن رمزًا صغيرًا لإجراء هذه التغييرات. أولاً ، سنضيف سطرًا إلى قسم الشفرة الذي أطلقنا عليه اسم "إعادة المحاولة". لذا اذهب وابحث عن هذا القسم. يبدو كما يلي: RetrySET / p Guess = IF٪ Guess٪ LSS٪ Answer٪ ECHO رقمي أعلى. IF٪ Guess٪ GTR٪ Answer٪ ECHO رقمي أقل. IF٪ Guess٪ ==٪ Answer٪ GOTO ENDECHO. SET / a GuessNum =٪ GuessNum٪ + 1GOTO Retry حسنًا ، سنضيف هذا السطر مباشرةً بعد "ECHO". (عندما نضع فترة بعد ECHO ، فإنه يترك سطرًا فارغًا.) هذا هو الكود الجديد: IF٪ GuessNum٪ EQU 4 GOTO shutdownG عندما نضيف هذا السطر ، يبدو القسم كالتالي: RetrySET / p Guess = IF٪ Guess٪ LSS٪ Answer٪ ECHO رقمي أعلى. IF٪ Guess٪ GTR٪ Answer٪ ECHO رقمي أقل. IF٪ Guess٪ ==٪ Answer٪ GOTO ENDECHO. SET / a GuessNum =٪ GuessNum٪ + 1IF٪ GuessNum٪ EQU 4 اذهب إلى الإغلاق GOTO أعد المحاولة الآن ، يجب أن يكون واضحًا جدًا ما يفعله هذا. يخبر الكمبيوتر أنه إذا كان GuessNum EQUals 4 ، فيجب أن ينتقل إلى قسم الكود المسمى "shutdownG". إذن ، ماذا نريد أن يقول قسم الإغلاق هذا؟ حسنًا ، من الواضح أنه يجب تسمية "shutdownG". بعد ذلك ، يجب أن يغلق الكمبيوتر. أمر إيقاف التشغيل هو "SHUTDOWN -s". سيؤدي هذا إلى إيقاف تشغيل الكمبيوتر ، لكننا نريد إضافة البعض إلى الأمر. سنضيف "-f". سيؤدي ذلك إلى إغلاق جميع البرامج ، وسنضيف "-t 60". سيطلب ذلك من الكمبيوتر عرض نافذة والانتظار لمدة ستين ثانية حتى يغلق. سنضيف أيضًا رسالة "-c" هنا "". والذي سيعرض رسالة في نافذة الاغلاق. بعد أمر إيقاف التشغيل الخاص بنا ، سنتعامل مع نفس الكود الذي لدينا أعلاه ، الكود الذي يسمح للاعبنا باختيار الأرقام ، وإعطائهم ملاحظات ، لذا يبدو رمز الإغلاق لدينا الآن على النحو التالي: shutdownGSHUTDOWN -s -f -t 60 -c "استمر في التخمين! إذا لم تخمن الرقم الصحيح ، فسيتم إيقاف تشغيل الكمبيوتر!": shutdownG1SET / p Guess = IF٪ Guess٪ LSS٪ Answer٪ ECHO رقمي أعلى. IF٪ Guess٪ GTR٪ إجابة ٪ ECHO My Number أقل. IF٪ Guess٪ ==٪ Answer٪ GOTO ENDECHO. SET / a GuessNum =٪ GuessNum٪ + 1GOTO shutdownG1 الآن قمنا بضبط الكمبيوتر على إيقاف التشغيل ، وعرض رسالة ، لكننا نحتاج أيضًا إلى إخبار جهاز الكمبيوتر لإيقاف إيقاف التشغيل ، إذا كان قد بدأ. لذلك ، سنضيف ذلك إلى قسم الترميز المسمى "end". هذا القسم يبدو كالتالي: ENDIF٪ GuessNum٪ GTR 4 SHUTDOWN -aECHO أنت على صواب! كانت الإجابة٪ Answer٪ ECHO استغرق الأمر٪ GuessNum٪ Guesses. ECHO. PAUSECLSECHO هل ترغب في اللعب مرة أخرى؟ العب٪ GTR y GOTO playagainIF٪ play٪ LSS y GOTO playagainIF٪ play٪ GTR n GOTO playagainIF٪ play٪ LSS n GOTO playagain نريد إيقاف إيقاف التشغيل ، ونفعل ذلك باستخدام الأمر "SHUTDOWN -a". لذلك ، سنضيف سطرًا على النحو التالي: IF٪ GuessNum٪ GTR 4 SHUTDOWN -a سنضيف هذا الأمر مباشرة بعد التسمية ، وهذا سيخبر الكمبيوتر بتشغيل الأمر SHUTDOWN -a فقط إذا كان لدى اللاعب قام بأكثر من أربعة تخمينات ، وبدأ في الإغلاق. تمام! يجب أن تنتهي لعبتك الآن! سنتأكد من عدم وجود أي أخطاء في الخطوة التالية.

الخطوة 7: الخطوات النهائية

الخطوات النهائية
الخطوات النهائية

حسنًا ، الآن إذا جمعت كل هذا الترميز معًا ، فستحصل على شيء يبدو مثل هذا: startECHO سأفكر في رقم ECHO أفكر … مجموعة / a GuessNum = 0: pickASET / إجابة =٪ RANDOM٪ IF٪ Answer٪ GTR 20 GOTO pickAIF٪ Answer٪ EQU 0 GOTO pickAECHO أفكر في رقم بين 1 و 20ECHO احزر ما هو الرقم الذي أفكر فيه.: إعادة ضبط / p تخمين = IF٪ تخمين ٪ LSS٪ Answer٪ ECHO رقمي أعلى. IF٪ Guess٪ GTR٪ Answer٪ ECHO رقمي أقل. IF٪ Guess٪ ==٪ Answer٪ GOTO ENDECHO. SET / a GuessNum =٪ GuessNum٪ + 1IF٪ GuessNum٪ يجب إيقاف تشغيل EQU 4 GOTO أعد المحاولة: ENDIF٪ GuessNum٪ GTR 4 SHUTDOWN -aECHO أنت على صواب! كانت الإجابة٪ Answer٪ ECHO استغرق الأمر٪ GuessNum٪ Guesses. ECHO. PAUSECLSECHO هل ترغب في اللعب مرة أخرى؟ العب٪ GTR y GOTO playagainIF٪ play٪ LSS y GOTO playagainIF٪ play٪ GTR n GOTO playagainIF٪ play٪ LSS n GOTO playagain: closeECHO شكرًا لك على اللعب PAUSEEXIT cmd: shutdownGSHUTDOWN -s -f -t 60 -c "استمر في التخمين ! إذا لم تخمن الرقم الصحيح ، فسيتم إيقاف تشغيل الكمبيوتر! ": shutdownG1SET / p Guess = IF٪ Guess٪ LSS٪ Answer٪ ECHO My Number is Higher. IF٪ Guess٪ GTR٪ Answer٪ ECHO رقمي هو Lower. IF٪ Guess٪ ==٪ Answer٪ GOTO ENDECHO. SET / a GuessNum =٪ GuessNum٪ + 1GOTO shutdownG1 هل يجب أن يكون هذا كل ما نحتاجه بشكل صحيح؟ لذا ، امض قدمًا واحفظ ملف المفكرة.txt الذي لديك باسم GuessGame.bat. في الواقع ، يمكنك تسميته ما تريد ، طالما أنك تضع ملف.bat في النهاية. حسنًا ، انقر فوق الرمز وقم بتشغيل البرنامج! هل نجحت؟ حسنا الفرز. إنها تقوم ببعض الأشياء الغريبة ، أليس كذلك؟ تبين أنه عندما نكتب دفعة مثل هذه ، فإن موجه الأوامر ECHOs كل أمر نمنحه إياه ، تمامًا كما لو كتبناها في موجه الأوامر. لذا تعمل اللعبة ، لكنها فوضوية بعض الشيء وغير واضحة. هل يمكننا فعل أي شيء حيال هذا؟ نعم! كل ما يتعين علينا القيام به هو كتابة هذا السطر في بداية الكود الخاص بنا:ECHO OFF هذا يخبر الكمبيوتر بإيقاف تشغيل ECHO. وعلامة @ عند التسول تخبرها بإيقاف تشغيل ECHO لكل أمر. إذا تركنا هذا @ ، فسيؤدي ذلك فقط إلى إيقاف تشغيل ECHO لأمر واحد.

الخطوة 8: كل ذلك

تهانينا! لقد كتبت للتو لعبة ملف دفعي. بسيط جدا أليس كذلك؟ إذا كنت تستطيع التعامل مع هذا ، فيمكنك معرفة كيفية القيام ببعض المهام باستخدام ملفات Batch. فقط العب بها ، قم ببعض التجارب. فقط في حالة عدم تمكنك من الحصول على شيء ما للعمل ، أو في حال تركت شيئًا ما في كل هذا الترميز ، فسأعطيك الملف هنا.

موصى به: