簡體   English   中英

如何使用參數運行現有的計划任務?

[英]How To Run an Existing Scheduled Task with Arguments?

我有一個.NET應用程序正在運行,並且我希望它運行已使用Windows Task Scheduler計划的任務。 該任務被編寫為自己的控制台應用程序。

我嘗試在函數中列出參數:Run(arg1,arg2),但是在閱讀文檔時,我知道這是不正確的。

該任務將刪除某些類型的記錄(定義為枚舉)

ASP.NET應用程序

using (var ts = new TaskService())
{
    var deleteRecords = ts.FindTask("DeleteRecords");
    deleteRecords.Run(); //Want to Pass Args into this task
}

任務

namespace DeleteRecords {
    class Program {
        static void Main(string[] args) {
             string recordName = args[0];
             string recordType = args[1];
             //Then get and Delete Delete Record
        }
    }
}

現在,當我使用ASP.NET應用程序時,它產生了任務,但是退出時出現了索引不足錯誤,這是有道理的,因為未定義args。

我已經做了大量研究,您不能在任務管理器中安排任務,然后使用參數動態運行它。 運行它的任何參數都是計划任務定義的一部分,這很有意義。

話雖這么說,但是有一種解決方法:在您的代碼中,您可以即時計划一個新任務並使用您的參數對其進行注冊, 這可以在上面的@Mikaal Anwar的鏈接中找到 ,但是如果您需要調用帶有其他參數的任務,您需要執行另一個相同的任務,但帶有不同的參數。 這可能會有問題,因為如果您要嘗試以與調用該任務的用戶不同的用戶身份來運行該計划任務,則在注冊該任務時(除其他事項外)您需要公開該用戶的信息。 但是,如果這些類型的問題都不成問題,那么這是一個非常有用的解決方案。

另外,在我的情況下,我決定將輔助控制台應用程序作為子進程來調用。 它還有計划的任務沒有的其他問題,但是它使我每次都能傳遞新的參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM