زمانبندی اجرای برنامه ها با 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 Minutes | Minute: |
1 – 23 Hours | Hourly: |
1 – 365 Days | Daily: |
1 – 52 Week | Weekly: |
1 – 12 or FIRST, SECOND, THIRD, FOURTH, LAST, LASTDAY | Monthly: |
از پارامتر /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”
سلام واقعا ممنونم فقط یه سوالی داشتم اونم اینکه نمیشه تنظیم کرد که دو task با هم اجرا بشن ؟
سلام مهدی جان
خواهش میکنم
یعنی چی دوتا Task با هم اجرا بشن؟
اگه منظورتون ساخت دو Task که میتونید هزار تا بسازید. اما اگه منظورتون اجرای دو برنامه با یک Task به صورت همزمان که باید از فایل Batch استفاده کنید و هر دو برنامه تون رو در فایل Batch فراخوانی کنید.
سلام، من می خوام یه برنامه رو بعد از تموم شدن برنامه ای که در حال اجراست، باز کنم،
می دونید چطور باید این کارو انجام بدم؟
cmd یا autohotkey
سلام
میتونید هر دو برنامه رو تو یک فایل Batch به صورت پشت سر هم قرار بدید و فایل Batch رو اجرا کنید. برای مثال:
@echo off
Title App Luncher
Myfirstapp.exe
Mysecondapp.exe
سلام آقا این کامل ترین مقاله ای بود که خونده بودم خیلی خوب و به زبان قابل فهم واقا عالی بود ممنون
سلام حامد جان
ممنونم از محبت تون 🙂
سلام
خیلی خیلی عالی بود
مرسی از سایت خوبتون
سلام
ببخشید میشه بگید چه چیزی را تو قسمت cmdباید وارد کنم که کامپیوتر به صورت اتوماتیک به داخل تلگرام بره و یک پیام را به داخل گروه ها ارسال کنه.(به صورت اتوماتیک و هر چند دقیقه یک بار.)
البته اگه بشه یه کاریش کرد که وقتی هم که کامپیوتر خاموشه این کار را انجام بده .عالی میشه
ممنون
سلام واقعا سایت آموزنده ای دارید بسیار خوشحالم که با سایت شما آشنا شدم
سلام مصطفی جان
ممنون از محبت تون، باعث خوشحالی که سایت براتون مفید واقع شده 🙂
موفق و سربلند باشید.
سلام
من میخواستم بعد از \tr چندتا دستور رو اجرا کنه نه یه فایل خاصی رو. چطور میشه این کارو کرد؟
ممنون میشم اگه جواب بدید
سلام
آدرس یک فایل Batch رو بدید و دستورات مورد نظرتون رو در اون فایل بنویسد.
خیلی ممنون. اگه اون فایل 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
موفق باشید
سلام اگه من بخوام در زمان مشخص روی یک دکمه کلیک کنه باید چکار کنم ؟
سلام
بستگی به اون دکمه ای داره که دارید ازش حرف میزنید، مثلا اگر فقط محیط گرافیکی داره میتونید از VB Script استفاده کنید و بگید کجای صفحه کلیک بشه و با Schtasks زمان و ساعت اجرای اسکریپت VB Script رو مشخص کنید.
سلام من نیاز دارم ی task schudler رو فعال/غیرفعالش کنم هرکار میکنم نمیشه شما هم دستور create و delete رو یاد دادید دستور change رو هم بگید ممنون یا حداقل بگید من چطوری غیرفعال یا فعال کنم ی task ک داخل ی پوشه هست داخل task schulder
سلام
سپاس از وبلاگی مفیدی که دارید
برای حذف داده های این چنینی از رجیستری
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
در هر سیستم تصادفی ست در داس چطور باید اقدام کنیم؟
با تشکر از توجه و پاسخگوئی شما
سلام،من یه همچین چیزی هر ۲ دقیقه میاد رو صفحه مانیتورم از بازی یا برنامه میوفتم بیرو نه کامل ها یدونه پنجره cmd باز میشه مینویسه Warning:task my not run because /st is earlier than current time.
Success:the scheduled task “\windows\servicerun”has successfully been created. این خیلی ازیت میکنه
سلام
ممکن بفرمایید برای حذف این :
SCHTASKS /Create /SC MINUTE /MO 5 /TN TMLMANAGER /TR CMD.exe
باید دقیقا چکار کرد
خیلی ممنونم
سلام مجدد
همچنین چطور برای این دستور:
SCHTASKS /Create /SC HOURLY /TN Calculator /TR %Windir%\System32\Calc.exe
بجای ماشن حساب یک عکس را باز کند(از ساعت 10 تا 12)
سپاس فراوان
سلام میشه به صورت زمان بندی روزانه یه دستور کامند رو اجرا کرد؟
میخوام دستور RoboCopy رو روزانه اجرا کنم
سلام میتوانید از دستور schtasks به همراه این دستور استفاده کنید.
سلام مهندس خسته نباشید ببخشید میشه مثال های بیشتری از همه پارامتر های این فرمان بزنید متشکرم .
من همه سایت ها رو دنبال خط فرمان های کامند پرامپت گشتم اما هیچ سایتی به این کاملی و باکیفتی این فرمان ها رو توضیح نداده بودند. واقعا جای تشکر داره . من به خیلی علاقه به کار کردن با خط فرمان های کامندپرامپت و پاورشل دارم . یه خواهش دیگه که هست اینه که فرمان های بیشتری از کامند پرامپت رو این جا بیارین مهندس . اگر پاورشل هم مثل این فرمان مثال های متنوع داشت خیلی عالی میشد. بازم تشکر از اموزش هاتون
سلام، بازهم ممنونم شما لطف دارید، حتما
با سلام و خسته نباشید . دستور خط فرمان میخواستم که در استارت آپ
برنامه اول اجرا شد بعداز ۳۰ ثانیه برنامه دوم اجرا شود و اجرای دوم منوط به اجرای اول است و سپس برنامه سوم با ۲۰ ثانیه اختلاف. همه با شروع به کار سیستم باشد باتشکر
سلام ممنونم، سلامت باشید
یک فایل بچ ایجاد کنید و برای زمانبندی از دستور timeout استفاده کنید.
سلام من یک تسک میخوام ساعت ۱۶ تا ۲۱ هر یک ساعت بره آپدیت ویندوز را فعال کنه تا درصورت مشکل آپدیت انجام بشه
Check for updates ویندوز را انجام بده
سلام، سرویس ویندوز آپدیت به صورت پیشفرض در پسزمینه ویندوز اجراست مگراینکه غیر فعالش کرده باشید
چیزی که درخواست کردید مثالش رو اوردم، فقط باید برنامه شو به سرویس ویندوز آپدیت تغییر بدید.
سلام و خسته نباشید
چطوری با دستور 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
سلام وقت بخیر
من یک cmd در حالت run as admin باز میکنم و بعدش میخوام دستور زیر رو تو یه تاریخ و ساعت مشخص اجرا کنه .
update.bat -c update
ممنون از شما
سلام
از محتوای همین اموزش استفاده کن و یک تسک برای اجرا در زمان مشخص ایجاد کن، میتونی تسک رو به صورت Run as Admin هم مشخص کنی تا با مجوز مدیریت اجرا بشه