أفضل عبارات IF لاستخدام ملفات Batch بشكل أكثر ذكاء على Windows

إذا كنت تقوم بالكثير من العمل مع ملفات Batch على Windows ، فإن عبارات IF توفر وسيلة قوية للغاية لإضافة مرونة إلى البرمجة النصية الخاصة بك.

في هذه المقالة ، ستتعرف على الأنواع الخمسة الرئيسية لعبارات IF التي يمكنك استخدامها في ملف Batch على Windows ، وكيف يبدو بناء الجملة الصحيح ، ومثالًا واقعيًا لكل منها.

إذا كنت مستعدًا لبدء البرمجة النصية ، فلنبدأ!

أفضل عبارات IF لاستخدام ملفات Batch بشكل أكثر ذكاء على Windows - الويندوز

1. مقارنة القيم

أحد الأشياء الأساسية التي عادة ما تحتاج إلى القيام بها في نص برمجي Batch هو مقارنة قيمتين واتباع مسار عمل مختلف اعتمادًا على نتيجة المقارنة.

على سبيل المثال ، لنفترض أنك تريد كتابة نص برمجي Batch يتحقق من حجم محرك الأقراص الثابتة بجهاز الكمبيوتر الخاص بك يوميًا. إذا كان حجمه أقل من 3 غيغابايت ، فأنت تريد الحصول على تنبيه عبر البريد الإلكتروني يقول “مساحة القرص الصلب منخفضة للغاية“.

لإنشاء نص برمجي يقارن مساحة محرك الأقراص المتوفرة الحالية ومقارنتها بالحد المسموح به ، يمكنك إنشاء النص البرمجي Batch التالي وحفظه كملف .bat.

@echo off

set DriveLimit=300000000

for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value`) do set FreeSpace=%%x

Echo FreeSpace="%FreeSpace%"

Echo Limit="%DriveLimit%"

If %FreeSpace% GTR %DriveLimit% (

 Echo There is enough free space.

) else (

 Echo Not enough free space.

)

WMIC هو اختصار لـ Windows Management Instrumentation component الذي يأتي مع مجموعة متنوعة من الأوامر التي يمكنك استخدامها لسحب معلومات من الكمبيوتر. هذه هي الطريقة التي يستدعي بها الأمر “wmic” في هذا النص البرمجي مساحة التخزين المتوفرة “logicaldisk” ويضعها في متغير FreeSpace. يمكنك الآن استبدال سطر “Echo Not enough free space” بأمر blat email لإرسال تنبيه إليك.

أخيرًا ، قم بإعداد هذا النص البرمجي كمهمة Batch مجدولة في Windows والتي تعمل يوميًا.

إذا لم تكن قد إستخدمت blat من قبل ، فلدينا مقال يوضح لك كيفية إعداد bat. غير معتاد على إنشاء وظائف مجدولة؟ لقد أنشأنا مقال حول كيفية إعداد المهام المجدولة لـ Windows.

2. مقارنة السلاسل

عبارة أخرى لـ IF يمكنك استخدامها في مهمة Batch هي مقارنة السلاسل.

في المثال التالي ، سترى كيفية التحقق من إصدار Windows باستخدام مهمة Batch. ثم يمكنك مقارنة هذا بإصدار Windows المتوقع.

ستكون بعض استخدامات هذا النص البرمجي أساسية لتدقيق تكنولوجيا المعلومات عندما تحتاج إلى تشغيل نص برمجي سريع والتأكد من أن نظام التشغيل الحالي هو الأحدث ، أو ما إذا كان يحتاج إلى ترقية.

إليك ما يبدو عليه هذا النص البرمجي.

@echo off

for /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%j

if "%version%" == "6.0" echo Windows Vista.

if "%version%" == "6.1" echo Windows 7

if "%version%" == "6.2" echo Windows 8

if "%version%" == "6.3" echo Windows 8.1

if "%version%" == "10.0" echo Windows 10.

إليك ما يبدو عليه إخراج هذا النص البرمجي.

أفضل عبارات IF لاستخدام ملفات Batch بشكل أكثر ذكاء على Windows - الويندوز

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

3. تحقق مما إذا كان الملف موجودًا

موقف مفيد آخر لعبارة IF في ملف Batch هو التحقق من وجود ملف بيانات.

في كثير من الأحيان ، تكون مهمة Batch مجرد أداة مراقبة قد تتم جدولتها للتحقق من ملفات البيانات الجديدة الواردة في دليل محدد.

بعد ذلك ، قد تقوم مهمة Batch بنسخ هذا الملف إلى موقع آخر حيث يمكن معالجته ، أو تشغيل بعض البرامج النصية لـ windows التي تعالج الملف في إخراج Excel.

(لقد كتبنا في الماضي عن كيفية استخدام النصوص البرمجية لـ Windows لمعالجة البيانات إلى ملف Excel ؛ قراءة خلفية جيدة.)

يعد استخدام ملف Batch للتحقق مما إذا كان الملف موجودًا في دليل ما خطوة سريعة وسهلة. إليك ما يبدو عليه هذا النص البرمجي.

@echo off

if exist c:\temp\datafile.txt (

 %WINDIR%\SysWOW64\cmd.exe

 cscript LoadToExcel.vbs

) else (

 rem file doesn't exist

)

مقارنة IF EXISTS مفيدة لكثير من الأشياء.

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

4. تحقق مما إذا فشل تنفيذ الأمر

يتمثل هذا في أحد الجوانب المميزة للنصوص البرمجية لملفات Batch التي يستخدمها عدد قليل جدًا من الناس أو المبرمجين في تقنية المعلومات في البحث عن الأخطاء.

هناك الكثير من المهام التجميعية التي تطفو هناك والتي تؤدي مهام تكنولوجيا المعلومات الهامة مثل نسخ الملفات المهمة احتياطيًا أو تشغيل عمليات نسخ الملفات. عندما تفشل مهام Batch هذه ، تفشل الأنظمة وبعدها سيلاحظها الناس.

من الأذكى بكثير الحصول على تنبيه عندما تفشل مهمة Batch الخاصة بك في أمر ما قبل أن يبدأ الناس في ملاحظة ذلك. بهذه الطريقة يمكنك حل المشكلة بشكل استباقي.

يمكنك القيام بذلك عن طريق استخدام المتغير %errorlevel% الذي ترجعه معظم التطبيقات والأوامر بعد تشغيلها.

كل ما عليك فعله هو اتباع الأمر الخاص بك عن طريق الأمر IF %ERRORLEVEL%. إذا قام التطبيق أو الأمر بإرجاع صفر ، فكل شيء على ما يرام. إذا لم يكن كذلك ، فأنت بحاجة إلى إرسال بريد إلكتروني تنبيهي لنفسك.

@echo off

xcopy C:\somefolder E:\backupfolder

IF %ERRORLEVEL% NEQ 0 <blat command to send email>

ليس عليك اتباع طريق البريد الإلكتروني. يمكنك دائمًا كتابة سجل خطأ يمكنك التحقق منه كل صباح ، أو تشغيل تطبيق أو أمر ثانٍ يحاول القيام بالمهمة باستخدام كيفية بديلة. أيا كان الإجراء الذي تريد القيام به ، فإن IF %ERRORLEVEL% يتيح لك القيام بذلك.

إذا كنت تفضل استخدام عبارة IF للتحقق من وجود رموز خطأ محددة ، فإن Windows يقدم قائمة شاملة من رموز الأخطاء.

5. تحقق من وجود معلمات مفقودة

آخر عبارة IF مفيدة ليست أمرًا محددًا ، ولكن بدلاً من ذلك للتحقق من أن النص البرمجي تلقى معلمات الإدخال المناسبة.

على سبيل المثال ، لنفترض أنك كتبت نصًا يقوم بتنفيذ أمر xcopy من مجلد إدخال ، إلى مجلد شبكة مشترك يستخدمه فريق عملك. يحتاج المستخدم فقط إلى اتباع اسم النص البرمجي الخاص بك مع المعلمات التي تحدد مسار ملفهم الشخصي.

من الواضح أنه لا يمكنك تنفيذ النص البرمجي بشكل صحيح دون المسار المحدد ، لذلك يمكنك وضع عبارة IF في بداية النص البرمجي للتأكد من إدخال المعلمتين.

إليك كيف يبدو ذلك.

@echo off

IF [%1]==[] (

GOTO sub_message

) ELSE (

xcopy %1 E:\backupfolder

)

GOTO eof

:sub_message

echo You forgot to specify your path.

:eof

إذا لم تستخدم المعلمات ذات النصوص البرمجية Batch من قبل ، فإن رمز النسبة المئوية متبوعًا بالرقم يمثل متغير المعلمة. %1 هي المعلمة الأولى ، %2 هي المعلمة الثانية وهكذا.

وظائف Batch يمكن أن تكون قوية

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

بالطبع ، إذا كنت تريد بالفعل رفع مستوى هذه الخطوة ، فقد تفكر في إلقاء نظرة على VBA من خلال دليلنا حول إنشاء أول تطبيق VBA ، أو ربما تعلم برمجة Python.

يمكنك غالبًا استخدام لغات البرمجة المتقدمة مثل هذه ، أو تعلم استخدام PowerShell ، لإنجاز العديد من المهام نفسها التي تستخدمها حاليًا في مهام Batch.

زر الذهاب إلى الأعلى