【问题标题】:Task Scheduler using C# (To Schedule .bat(batch) file)使用 C# 的任务计划程序(计划 .bat(batch) 文件)
【发布时间】:2013-07-18 13:19:35
【问题描述】:

我想使用与 Windows 任务计划程序相同的 C# 创建一个任务计划程序,以在特定时间运行我的 .bat(批处理)文件。

我找到了这个有用的链接 (http://www.codeproject.com/Articles/38553/TaskScheduler)

在这个他们安排触发器,我想安排我的 .bat 文件 我的意思是当我试图在标签文本框中提供我的批处理文件路径时,它只是触发了触发器,而不是运行我的批处理文件 所以,我稍微修改了代码,现在我也可以运行我的批处理文件了,

但是,当我关闭我的应用程序触发也停止, 那么,有什么方法可以触发或运行我的批处理文件,即使我关闭了我的应用程序喜欢窗口任务计划程序???

请帮助我。

注意:其桌面应用程序使用 C#

【问题讨论】:

  • 你的问题不是很清楚,但是你不能把它作为参数传递给main吗?
  • 你有什么理由不能只使用windows任务计划程序吗?
  • @Reubz 这个应用程序是为我们的非技术人员的员工制作的,所以我们必须创建一个桌面表单来安排我们的批处理文件,这个批处理文件将调用其他控制台应用程序.
  • @doctorlove 如果可能的话,点击我在我的问题中提到的链接,下载该项目并运行它。在这个项目中设计是完美的,但我不知道如何在这个项目中给出我的批处理文件的路径,所以它会在调度时运行。
  • 尝试在 codeproject 上发布您的问题

标签: c# .net scheduled-tasks


【解决方案1】:

您可以将批处理文件的路径放在 标签 文本框中。将 Active 选中一次框,设置时间和此时触发器被触发。

注意:它只是触发触发器。你正在寻找的是运行批处理文件。在这种情况下,你需要修改代码。你可以从

private void buttonCreateTrigger_Click(object sender, EventArgs e)
    {
        CreateSchedulerItem();
    }

在 Demo.cs 页面中

为了运行您的 batch 文件或 TaskScheduler.cs 中的 exe 查找并替换此代码

        void _triggerTimer_Tick(object sender, EventArgs e)
    {
        _triggerTimer.Stop();
        foreach (TriggerItem item in TriggerItems)
            if (item.Enabled)
                while (item.TriggerTime <= DateTime.Now)
                    item.RunCheck(DateTime.Now);
                    System.Diagnostics.Process.Start("Your Path");
        _triggerTimer.Start();
    }

现在您可以将此路径保存在一些通用类中并使其访问两者。

【讨论】:

  • 是的,当我在标签文本框中提供我的批处理文件路径时,它只是触发了触发器,而不是运行我的批处理文件。所以,我正在寻找代码,如何运行我的批处理文件,我尝试在 private void CreateSchedulerItem() 和事件 triggerItem_OnTrigger 中进行一点修改,但我没有得到解决方案
  • @VARUNNAYAK 检查我的答案...如果有帮助,请将其标记为答案 :)
  • 嘿,谢谢你的代码,我只是稍微修改了一下,if (item.Enabled) while (item.TriggerTime &lt;= DateTime.Now) { item.RunCheck(DateTime.Now); System.Diagnostics.Process.Start("C:\\Users\\ST_User_1\\Desktop\\DGFTServer"); } 而且,我的程序运行完美!!但是,当我关闭像 Window Task Scheduler 这样的应用程序时,它不会运行。
【解决方案2】:

那么,有什么问题吗?下载后可以查看Demo.cs,在这里可以找到方法private void CreateSchedulerItem()和事件triggerItem_OnTrigger。您可以更改此事件以运行您需要的批处理文件。

【讨论】:

  • 你能告诉我我应该应用什么类型的修改吗??!!
  • 我改变了我的编码,现在我可以根据调度运行我的批处理文件,但是当我终止我的程序时它无法被调度,所以,有什么方法可以运行我的批处理文件,即使我终止了我的应用程序,比如窗口任务调度程序
  • 您刚刚复制并粘贴了上面的代码。你个人尝试了什么?顺便说一句,要解决您的问题,您不需要如此复杂的程序。 10行代码就可以解决。看得更远。
【解决方案3】:

类似的东西。希望你能把Console.WriteLine改成System.Diagnostics

static void Main(string[] args) {
    AutoResetEvent autoResetEvent = new AutoResetEvent(false);
    Timer timer = new Timer(PrintHello, autoResetEvent, 0, 5000);
    autoResetEvent.WaitOne();
}

private static void PrintHello(Object state) {
    Console.WriteLine("Hello");
}

【讨论】:

    猜你喜欢
    • 2014-02-28
    • 1970-01-01
    • 2020-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多