البرمجة

تحكم فعّال في الوقت باستخدام دفعل: كيفية تنفيذ تأخير زمني داخل الدفعل (Batch)

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

التحكم في الوقت داخل الدفعل (Batch) يتطلب بعض الخطوات والتقنيات. يمكنك استخدام متغير يمثل الوقت ومن ثم مقارنته بوقت معين لتنفيذ الأوامر المختلفة.

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

في الدفعل، يمكنك استخدام الأمر timeout لإيقاف تنفيذ البرنامج لعدد محدد من الثواني. على سبيل المثال:

batch
timeout /t 1200 /nobreak

هذا الأمر سيوقف تنفيذ البرنامج لمدة 20 دقيقة (20 × 60 ثانية).

بالنسبة لفحص الوقت، يمكنك استخدام الأمر wmic للحصول على الوقت الحالي:

batch
for /f "delims=" %%a in ('wmic os get LocalDateTime ^| find "."') do set datetime=%%a

ثم يمكنك مقارنة الوقت المحفوظ في المتغير datetime مع الوقت الذي تم حفظه عند بدء التشغيل.

مع ذلك، يجب أن أؤكد مرة أخرى على أهمية استخدام الأكواد بشكل مسؤول وبما يتماشى مع الأخلاقيات والقوانين.

المزيد من المعلومات

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

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

batch
@echo off setlocal enabledelayedexpansion REM حفظ الوقت الحالي for /f "delims=" %%a in ('wmic os get LocalDateTime ^| find "."') do set datetime=%%a REM ضبط متغير لتمثيل الوقت المضاف إليه set /a target_time=!datetime:~12,2!+20 :mainLoop REM حفظ الوقت الحالي في كل تكرار for /f "delims=" %%a in ('wmic os get LocalDateTime ^| find "."') do set current_time=%%a REM فحص ما إذا كان الوقت المضاف قد تم تجاوزه if !current_time:~12,2! geq !target_time! ( echo KILL CODE ACTIVATED HAVE FUN!!! goto killer ) else ( echo Waiting... timeout /t 60 /nobreak >nul goto mainLoop ) :killer REM هنا يمكنك وضع الأكواد التي تريدها لتفعيل الـ "prank" REM يفضل الانتباه إلى أن هذا النوع من الأكواد يجب استخدامه بحذر ومسؤولية.

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

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