亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

如何使用C#快速創(chuàng)建定時(shí)任務(wù)

admin
2025年7月2日 16:25 本文熱度 181

使用Windows的計(jì)劃任務(wù)功能可以創(chuàng)建定時(shí)任務(wù)。

使用schtasks.exe可以對(duì)計(jì)劃任務(wù)進(jìn)行管理,而不需要編寫(xiě)額外代碼 

這里掌握schtasks /CREATE 的幾個(gè)核心參數(shù)就可以快速創(chuàng)建計(jì)劃任務(wù)

/SC   

計(jì)劃頻率(schedule)

必須是以下值

MINUTE:每分鐘

HOURLY:每小時(shí)

DAILY:每天

WEEKLY:每周

MONTHLY:每月

ONCE:一次

ONSTART:計(jì)算機(jī)啟動(dòng)時(shí)

ONLOGON:用戶登錄時(shí)

ONIDLE:當(dāng)計(jì)算機(jī)空閑時(shí)

ONEVENT:當(dāng)特定事件被記錄時(shí)

 /TN 

任務(wù)名稱(taskname)

以路徑\名稱形式指定
任務(wù)名稱。如 MyTaskFolder\MyTask

 

/ST

任務(wù)的開(kāi)始時(shí)間(starttime)
時(shí)間格式為 HH:mm (24 小時(shí)時(shí)間),例如 14:30 表示
2:30 PM。如果未指定 /ST,則默認(rèn)值為
當(dāng)前時(shí)間
 

/TR 

任務(wù)程序的路徑(taskrun)
例如: C:\windows\system32\notepad.exe

如果程序有參數(shù),空格然后加在程序路徑后即可

例如: C:\windows\system32\notepad.exe a.txt

 

/D

運(yùn)行任務(wù)的日期(days)

當(dāng)SC是WEEKLY時(shí):

可選MON、TUE、WED、THU、FRI、SAT、SUN


當(dāng)SC是MONTHLY時(shí):

可選 1 - 31

通配符“*”指定所有日期。

/M 

指定一年內(nèi)的某月(months) 。默認(rèn)是該月的第一天。

可選:

JAN、FEB、MAR、APR、MAY、JUN、
JUL、 AUG、SEP、OCT、NOV 和 DEC。

通配符"*"代表所有月份

 

示例:

創(chuàng)建一個(gè)名為MyTask1的計(jì)劃任務(wù),位于MyTaskFolder文件夾下,該任務(wù)在每天的12:00執(zhí)行 "notepad.exe test.txt"

schtasks /create /SC DAILY  /TN "MyTaskFolder\MyTask1" /ST "12:00" /TR "C:\Windows\System32\notepad.exe test.txt"
 

創(chuàng)建一個(gè)名為MyTask1的計(jì)劃任務(wù),位于MyTaskFolder文件夾下,該任務(wù)在每周一的12:00執(zhí)行 "notepad.exe test.txt"

schtasks /create /SC WEEKLY /D MON /TN "MyTaskFolder\MyTask2" /ST "12:00" /TR "C:\Windows\System32\notepad.exe test.txt"
 

創(chuàng)建一個(gè)名為MyTask1的計(jì)劃任務(wù),位于MyTaskFolder文件夾下,該任務(wù)在每個(gè)月15號(hào)的12:00執(zhí)行 "notepad.exe test.txt"

schtasks /create /SC MONTHLY /M * /D 15 /TN "MyTaskFolder\MyTask3" /ST "12:00" /TR "C:\Windows\System32\notepad.exe test.txt"
 

在C#中調(diào)用使用Process類執(zhí)行上面命令即可。可以參考以下的代碼

因?yàn)樵路葸@里我需要每個(gè)月,所以就沒(méi)定義月份枚舉了,只定義了每周的枚舉。

 

WeekDay.cs

天的枚舉

public enum WeekDay    {        MON,        TUE,        WED,        THU,        FRI,        SAT,        SUN    }

TaskSchedulerManager.cs

對(duì)計(jì)劃任務(wù)進(jìn)行一個(gè)簡(jiǎn)單的創(chuàng)建管理,可以根據(jù)自己需求進(jìn)行修改。

public class TaskSchedulerManager{    private const string SCHTASKS = "schtasks.exe";
    public static bool IsExistTask(string taskName)    {        var result = ProcessHelper.GetConsoleOutput(SCHTASKS, "/query");        return result.Contains(taskName);    }
    public static bool CreateDailyTask(string taskName, string exePath, string args, string time)    {        if (IsExistTask(taskName))            return true;
        var taskArgs = $"/create /SC DAILY  /TN \"{taskName}\" /ST \"{time}\" /TR \"{exePath} {args}\"";        var result = ProcessHelper.GetConsoleOutput(SCHTASKS, taskArgs);        return result.Contains(taskName);    }
    public static bool CreateWeeklyTask(string taskName, string exePath, string args, string time, WeekDay weekDay)    {        if (IsExistTask(taskName))            return true;
        var taskArgs = $"/create /SC WEEKLY /D {weekDay} /TN \"{taskName}\" /ST \"{time}\" /TR \"{exePath} {args}\"";        var result = ProcessHelper.GetConsoleOutput(SCHTASKS, taskArgs);        return result.Contains(taskName);    }
    public static bool CreateMonthlyTask(string taskName, string exePath, string args, string time, int monthDay)    {        if (IsExistTask(taskName))            return true;
        var taskArgs = $"/create /SC MONTHLY /M * /D {monthDay} /TN \"{taskName}\" /ST \"{time}\" /TR \"{exePath} {args}\"";        var result = ProcessHelper.GetConsoleOutput(SCHTASKS, taskArgs);        return result.Contains(taskName);    }}

ProcessHelper.cs

這個(gè)方法是獲取控制臺(tái)的輸出

public class ProcessHelper    {        public static string GetConsoleOutput(string cmd,string args = "")        {            var output = "";            Process process = new Process();            ProcessStartInfo psInfo = new ProcessStartInfo();            psInfo.Arguments = args;            psInfo.FileName = cmd;            psInfo.UseShellExecute = false;            psInfo.RedirectStandardOutput = true;            psInfo.CreateNoWindow = false;            process.StartInfo = psInfo;            process.OutputDataReceived += (a, b) => { output += b.Data; };            process.Start();            process.BeginOutputReadLine();            process.WaitForExit();            process.Close();            process.Dispose();            return output;        }    }

如果需要編程進(jìn)行控制的,可以使用CLSID_TaskScheduler的COM接口 

覺(jué)得麻煩不想自己封裝的,可以直接使用nuget包

NuGet\Install-Package TaskScheduler -Version 2.10.1 

另外:

刪除任務(wù)可以使用下面的命令

schtasks /delete /TN {taskName} /F 

參考文檔:

schtasks.exe使用說(shuō)明

https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/schtasks

TaskScheduler API

https://learn.microsoft.com/en-us/windows/win32/taskschd/task-scheduler-start-page

C# TaskSchduler COM API

https://www.pinvoke.net/default.aspx/Interfaces/ITaskScheduler.html


該文章在 2025/7/2 16:58:25 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved