دوره‌ های آموزشی نووا
اکتبر 24, 2016

زمانبندی اجرای برنامه ها با CMD

Avatar photo
برنامه نویس MERN Stack
زمانبندی اجرای برنامه ها با CMD

یکی از ابزارهای کاربردی ویندوز برای زمانبندی در اجرای برنامه ها، ابزار Task Scheduler میباشد. با استفاده از ابزار Task Scheduler میتوان برای هر برنامه مشخص کرد در چه ساعتی شروع به کار کند و در چه ساعتی کارش را به اتمام رساند. در CMD هم شما میتوانید برای اجرای برنامه ها زمان مشخصی را معین کنید. یعنی با خط فرمان مشخص کنید برنامه X در تاریخ فلان اجرا و در ساعت فلان متوقف شود. در ادامه نووا بلاگ را در زمانبندی اجرای برنامه ها با CMD دنبال کنید. تا نحوه استفاده از دستور SCHTASKS را بیاموزید.

ابتدا CMD را به صورت Run As Administrator اجرا کنید. برای یادگیری از روشهای مختلف در اجرای CMD به پست اجرای cmd مراجعه کنید.

پیشنهاد: اگر میخواهید به صورت گرافیکی نحوه اجرای زمانبندی شده برنامه ها را در ویندوز یاد بگیرید باید به آموزش اجرای زمانبندی شده برنامه ها با Task Scheduler مراجعه کنید.

اگر دستور SCHTASKS را بدون پارامتر وارد کنید کلیه Task های ساخته شده نمایش داده میشوند:

SCHTASKS

برای ساختن Task باید از زیر دستور /Create استفاده کنید.

SCHTASKS /Create /?

پارامترهای زیر دستور SCHTASKS /CREATE

ابتدا کلیه پارامتر ها را توضیح میدهم سپس از آنها در یک مثال استفاده میکنم.

از پارامتر /s برای مشخص کردن نام کامپیوتر مقصد استفاده میشود.

از پارامتر /u برای مشخص کردن نام حساب کاربری مقصد استفاده میشود.

از پارامتر /p برای وارد نمودن رمز عبور حساب کاربری مشخص شده در پارامتر /u استفاده میشود.

از پارامتر /sc برای مشخص نمودن نحوه اجرای برنامه در تاریخ استفاده میشود. این پارامتر شامل گزینه های زیر میباشد:

دقیقه ای (Minute) یا ساعتی (Hourly) یا روزانه (Daily) یا هفته ای (Weekly) یا ماهانه (Monthly) یا یکبار (Once) یا با بالا آمدن ویندوز (ONSTART) یا با وارد شدن به حساب کاربری (ONLOGON) یا در زمان استراحت (ONIDLE) یا در زمانی که اتفاق خاصی بیافتد (ONEVENT) .

از پارامتر /mo برای مشخص نمودن زمان اجرا استفاده میشود.

مقدار زماننوع زمان
1 – 1439 MinutesMinute:
1 – 23 HoursHourly:
1 – 365 DaysDaily:
1 – 52 WeekWeekly:
1 – 12 or FIRST, SECOND, THIRD, FOURTH, LAST, LASTDAYMonthly:

از پارامتر /d برای مشخص کردن روز اجرای Task در هفته استفاده میشود. مقادیر قابل استفاده:

برای هفت رو هفته:

MON, TUE, WED, THU, FRI, SAT, SUN

برای 30 یا 31 روز ماه:

1 – 31

از علامت * هم برای مشخص کردن کلیه ایام استفاده میشود.

از پارامتر /m برای مشخص کردن ماههای سال استفاده میشود. عدد پیشفرض اولین روز ماه است. مقادیر قابل استفاده:

JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC

از پارامتر /i برای مشخص کردن زمان استراحت استفاده میشود. برای استفاده از این مقدار باید دقیقه بیکاری سیستم را مشخص کنید. این دقیقه میتواند از 1 – 999 باشد.

از پارامتر /tn برای مشخص نمودن نام Task استفاده میشود.

از پارامتر /tr برای مشخص کردن برنامه ای که قرار است اجرا شود استفاده میشود. مثلا برای اجرای ماشین حساب: C:\Windows\System32\Calc.exe

از پارامتر /st برای مشخص نمودن زمان اجرای Task در روز استفاده میشود. زمان شروع 24 ساعته مشخص میشود. مثلا ساعت 21:30

از پارامتر /ri برای مشخص نمودن فاصله زمانی اجرای Task استفاده میشود. ای پارامتر با گزینه های زیر قابل استفاده نیست:

MINUTE, HOURLY, ONSTART, ONLOGON, ONIDLE, ONEVENT

از پارامتر /et برای مشخص نمودن زمان اتمام عملکرد Task استفاده میشود. زمان اتمام 24 ساعته میباشد. مثلا اگر ساعت شروع 21:30 میباشد زمان اتمام 22:30 مشخص میشود.

از پارامتر /du برای مشخص نمودن مدت زمان اجرای Task استفاده میشود. نمیتوان از پارامتر du با پارامتر et همزمان استفاده نمود.

از پارامتر /k برای متوقف نمودن Task در زمان پایان عملکرد Task استفاده میشود. برای استفاده از پارامتر /k باید از پارامتر های /et یا /du استفاده نموده باشید.

از پارامتر /sd برای مشخص نمودن تاریخ شروع Task استفاده میشود. برای مثال 05:31:2020 مقدار پیشفرض /sd تاریخ همان روز است. نمیتوان از پارامتر /sd به همراه گزینه های زیر استفاده نمود:

ONCE, ONSTART, ONLOGON, ONIDLE, ONEVENT

از پارامتر /ed برای مشخص نمودن تاریخ پایان Task استفاده میشود. برای مثال 06:03:2020 نمیتوان از پارامتر /sd به همراه گزینه های زیر استفاده نمود:

ONCE, ONSTART, ONLOGON, ONIDLE, ONEVENT

از پارامتر /ec برای مشخص نمودن نام کانال Event استفاده میشود.

از پارامتر /z برای حذف شدن خودکار Task پس از آخرین اجرا استفاده میشود.

از پارامتر /xml برای ساخت Task از روی فایل XML استفاده میشود.

از پارامتر /f برای ساخت اجباری Task استفاده میشود. نا دیده گرفتن هشدار ها

چند مثال از دستور SCHTASKS /CREATE

مثال اول:

SCHTASKS /Create /SC HOURLY /TN Calculator /TR %Windir%\System32\Calc.exe

در مثال بالا یک Task با نام Calculator ساخته شده که برنامه Calc.exe را به صورت ساعتی اجرا کند.

مثال دوم

SCHTASKS /Create /SC MINUTE /MO 5 /TN TMLMANAGER /TR CMD.exe /ST 12:00 /ET 14:00 /SD 06/06/2018 /ED 06/06/2020

در مثال بالا یک Task با نام TMLMANAGER ساخته شده که برنامه CMD را هر 5 دقیقه از ساعت 12:00 تا ساعت 14:00 اجرا کند.

که این Task از تاریخ 06/06/2018 شروع به فعالیت میکند و در تاریخ 06/06/2020 به پایان میرسد.

مثال سوم

SCHTASKS /Create /S ABC /U user /P password /RU runasuser /RP runaspassword /SC WEEKLY /TN report /TR notepad.exe

در مثال بالا یک Task با نام Report در سیستم ABC ساخته شده که در حساب کاربری Runuser اجرا میشود.

فهرست گیری از Task های ساخته شده

برای نمایش Task های ساخته شده دستور SCHTASKS را بدون پارامتر وارد کنید. برای مثال:

SCHTASKS

یکی دیگر از راههای نمایش Task های ساخته شده استفاده از پارامتر /Query میباشد.

SCHTASKS /QUERY

حذف Task های ساخته شده

برای حذف Task های ساخته شده باید از زیر دستور /Delete استفاده کنید. برای مثال:

SCHTASKS /DELETE /TN NOTEPAD

در صورت داشتن هر گونه سوال یا انتقاد نووا بلاگ را از محبت خود محروم نکنید.

33 پاسخ به “زمانبندی اجرای برنامه ها با CMD”

  1. Avatar photo M@hdi گفت:

    سلام واقعا ممنونم فقط یه سوالی داشتم اونم اینکه نمیشه تنظیم کرد که دو task با هم اجرا بشن ؟

    • سلام مهدی جان
      خواهش میکنم
      یعنی چی دوتا Task با هم اجرا بشن؟
      اگه منظورتون ساخت دو Task که میتونید هزار تا بسازید. اما اگه منظورتون اجرای دو برنامه با یک Task به صورت همزمان که باید از فایل Batch استفاده کنید و هر دو برنامه تون رو در فایل Batch فراخوانی کنید.

  2. Avatar photo امیرحسین گفت:

    سلام، من می خوام یه برنامه رو بعد از تموم شدن برنامه ای که در حال اجراست، باز کنم،
    می دونید چطور باید این کارو انجام بدم؟
    cmd یا autohotkey

    • سلام
      میتونید هر دو برنامه رو تو یک فایل Batch به صورت پشت سر هم قرار بدید و فایل Batch رو اجرا کنید. برای مثال:
      @echo off
      Title App Luncher
      Myfirstapp.exe
      Mysecondapp.exe

  3. Avatar photo HAMED__EMAMI گفت:

    سلام آقا این کامل ترین مقاله ای بود که خونده بودم خیلی خوب و به زبان قابل فهم واقا عالی بود ممنون

  4. Avatar photo علیرضا گفت:

    سلام
    خیلی خیلی عالی بود
    مرسی از سایت خوبتون

  5. Avatar photo امید گفت:

    سلام
    ببخشید میشه بگید چه چیزی را تو قسمت cmdباید وارد کنم که کامپیوتر به صورت اتوماتیک به داخل تلگرام بره و یک پیام را به داخل گروه ها ارسال کنه.(به صورت اتوماتیک و هر چند دقیقه یک بار.)
    البته اگه بشه یه کاریش کرد که وقتی هم که کامپیوتر خاموشه این کار را انجام بده .عالی میشه
    ممنون

  6. Avatar photo مصطفی گفت:

    سلام واقعا سایت آموزنده ای دارید بسیار خوشحالم که با سایت شما آشنا شدم

  7. Avatar photo بهنام گفت:

    سلام
    من می‌خواستم بعد از \tr چندتا دستور رو اجرا کنه نه یه فایل خاصی رو. چطور میشه این کارو کرد؟
    ممنون میشم اگه جواب بدید

    • سلام
      آدرس یک فایل Batch رو بدید و دستورات مورد نظرتون رو در اون فایل بنویسد.

      • Avatar photo بهنام گفت:

        خیلی ممنون. اگه اون فایل batch به صورت admin اجرا بشه چیکار کنم؟

        • سلام
          میخواهید برنامه ای رو از همون مسیر Batch اجرا کنید و با اجرای Admin باعث میشه به مسیر C:\Windows\System32 منتقل بشید یا اینکه منظور تون اینکه چطور به صورت Run As Admin اجراش کنید؟
          برای گزینه اول باید از دستور زیر در خطوط اول فایل Batch تون استفاده کنید:
          CD /D %~DP0
          برای گزینه دوم باید از پارامتر Ru برای مشخص کردن نام کاربری و Rp برای مشخص کردن رمز عبور حساب کاربری و از پارامتر Rl برای مشخص کردن سطح دسترسی استفاده کنید. برای مثل:
          SCHTASKS /Create /TN “Batch Task” /SC HOURLY /TR Batch.bat /RU username /RP password /RL HIGHEST
          موفق باشید

  8. Avatar photo rf گفت:

    سلام اگه من بخوام در زمان مشخص روی یک دکمه کلیک کنه باید چکار کنم ؟

    • سلام
      بستگی به اون دکمه ای داره که دارید ازش حرف میزنید، مثلا اگر فقط محیط گرافیکی داره میتونید از VB Script استفاده کنید و بگید کجای صفحه کلیک بشه و با Schtasks زمان و ساعت اجرای اسکریپت VB Script رو مشخص کنید.

  9. Avatar photo امیرحسین گفت:

    سلام من نیاز دارم ی task schudler رو فعال/غیرفعالش کنم هرکار میکنم نمیشه شما هم دستور create و delete رو یاد دادید دستور change رو هم بگید ممنون یا حداقل بگید من چطوری غیرفعال یا فعال کنم ی task ک داخل ی پوشه هست داخل task schulder

  10. Avatar photo جواد گفت:

    سلام
    سپاس از وبلاگی مفیدی که دارید
    برای حذف داده های این چنینی از رجیستری
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Avast Secure Browser Heartbeat Task (Hourly) S-1-5-21-1387133964-2758817978-1918603483-1001

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\MEGA\MEGAsync Update Task S-1-5-21-1387133964-2758817978-1918603483-1001

    که این اعداد
    S-1-5-21-1387133964-2758817978-1918603483-1001
    در هر سیستم تصادفی ست در داس چطور باید اقدام کنیم؟

    با تشکر از توجه و پاسخگوئی شما

  11. Avatar photo عباس گفت:

    سلام،من یه همچین چیزی هر ۲ دقیقه میاد رو صفحه مانیتورم از بازی یا برنامه میوفتم بیرو نه کامل ها یدونه پنجره cmd باز میشه مینویسه Warning:task my not run because /st is earlier than current time.
    Success:the scheduled task “\windows\servicerun”has successfully been created. این خیلی ازیت میکنه

  12. Avatar photo میثاق گفت:

    سلام
    ممکن بفرمایید برای حذف این :
    SCHTASKS /Create /SC MINUTE /MO 5 /TN TMLMANAGER /TR CMD.exe
    باید دقیقا چکار کرد
    خیلی ممنونم

  13. Avatar photo میثاق گفت:

    سلام مجدد
    همچنین چطور برای این دستور:
    SCHTASKS /Create /SC HOURLY /TN Calculator /TR %Windir%\System32\Calc.exe
    بجای ماشن حساب یک عکس را باز کند(از ساعت 10 تا 12)
    سپاس فراوان

  14. Avatar photo مهرداد گفت:

    سلام میشه به صورت زمان بندی روزانه یه دستور کامند رو اجرا کرد؟
    میخوام دستور RoboCopy رو روزانه اجرا کنم

  15. Avatar photo سام گفت:

    سلام مهندس خسته نباشید ببخشید میشه مثال های بیشتری از همه پارامتر های این فرمان بزنید متشکرم .
    من همه سایت ها رو دنبال خط فرمان های کامند پرامپت گشتم اما هیچ سایتی به این کاملی و باکیفتی این فرمان ها رو توضیح نداده بودند. واقعا جای تشکر داره . من به خیلی علاقه به کار کردن با خط فرمان های کامندپرامپت و پاورشل دارم . یه خواهش دیگه که هست اینه که فرمان های بیشتری از کامند پرامپت رو این جا بیارین مهندس . اگر پاورشل هم مثل این فرمان مثال های متنوع داشت خیلی عالی میشد. بازم تشکر از اموزش هاتون

  16. Avatar photo حمید گفت:

    با سلام و خسته نباشید . دستور خط فرمان میخواستم که در استارت آپ
    برنامه اول اجرا شد بعداز ۳۰ ثانیه برنامه دوم اجرا شود و اجرای دوم منوط به اجرای اول است و سپس برنامه سوم با ۲۰ ثانیه اختلاف. همه با شروع به کار سیستم باشد باتشکر

  17. Avatar photo حامد محمدی گفت:

    سلام من یک تسک می‌خوام ساعت ۱۶ تا ۲۱ هر یک ساعت بره آپدیت ویندوز را فعال کنه تا درصورت مشکل آپدیت انجام بشه
    Check for updates ویندوز را انجام بده

    • سلام، سرویس ویندوز آپدیت به صورت پیشفرض در پسزمینه ویندوز اجراست مگراینکه غیر فعالش کرده باشید
      چیزی که درخواست کردید مثالش رو اوردم، فقط باید برنامه شو به سرویس ویندوز آپدیت تغییر بدید.

      SCHTASKS /Create /SC MINUTE /MO 5 /TN TMLMANAGER /TR CMD.exe /ST 12:00 /ET 14:00 /SD 06/06/2018 /ED 06/06/2020
      
  18. Avatar photo ایمان گفت:

    سلام و خسته نباشید
    چطوری با دستور SCHTASKS
    یک فایل اجرایی را با روشن شدن سیستم برنامه اجرا شود
    با دستور زیر انجام دادم فایل اجرا نشد
    schtasks /create /tn testdd /tr C:\Users\nima\AppData\Local\file.exe /sc ONSTART /f

    • سلام سلامت باشید
      ۱- اول از درست بودن فایل اجرایی برنامه با مسیر کاملش مطمئن شو (C:\Users\nima\AppData\Local\file.exe)
      ۲- بجای استفاده از مسیرهای کامل، از متغیر های محیطی استفاده کن (%HOMEPATH%)
      ۳- بعد به صورت عادی یک وظیفه برای اجرای برنامه در چند دقیقه اینده ایجاد کن
      در کل میتونی برنامه تو در استارتاپ ویندوز بزاری، چه از طریق رجیستری (HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run) یا پوشه استارتاپ ویندوز
      C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

  19. Avatar photo امین گفت:

    سلام وقت بخیر
    من یک cmd در حالت run as admin باز میکنم و بعدش میخوام دستور زیر رو تو یه تاریخ و ساعت مشخص اجرا کنه .

    update.bat -c update

    ممنون از شما

    • سلام
      از محتوای همین اموزش استفاده کن و یک تسک برای اجرا در زمان مشخص ایجاد کن، میتونی تسک رو به صورت Run as Admin هم مشخص کنی تا با مجوز مدیریت اجرا بشه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *