zoukankan      html  css  js  c++  java
  • 计划任务

    计划任务

    Schtasks

    schtasks命令可以用来管理计划任务,允许管理员创建、删除、查询、更改、运行和终止本地或远程系统上的计划任务。

    参数列表:

    /Create 创建新计划任务。

    /Delete 删除计划任务。

    /Query 显示所有计划任务。

    /Change 更改计划任务属性。

    /Run 按需运行计划任务。

    /End 终止当前正在运行的计划任务。

    /ShowSid 显示与计划的任务名称相应的安全标示符。

    /? 显示帮助消息。

    如需获取每个参数的帮助信息,都可以在参数后面加/?来获取更多帮助。例如:

    schtasks /create /?

    具体参数列表这里就不放了。

    放个示例命令:

    schtasks /create /sc ONLOGON /tn testName /tr "c:wo.exe" /f /rl Highest

    这样就创建了名称为testName,在用户登录的时候以最高权限运行c:wo.exe程序。

    bat脚本执行计划任务

    示例如下:

    @echo off
    Echo "开始运行"
    Echo %1
    Echo %2
    schtasks /create  /SC ONLOGON /TN %1 /TR '%2' /F /RL HIGHEST
    

    其中%1代表第一个传入的参数,这里我作为计划任务的名称。%2表示第二个传入的参数,这里我作为计划任务要启动的应用程序。

    其中要注意的是路径中如果有空格必须要将路径使用""包起来。

    nsis中执行bat脚本的计划任务
    Exec "$INSTDIRTaskAuto.bat Test $"$INSTDIRTest.exe$""
    

    其中要使用$来转义"。

    C#管理计划任务

    在C#中可以使用TaskScheduler库来管理计划任务。

    简单示例:

     /// <summary>
            /// 创建登录运行程序
            /// </summary>
            /// <param name="name">计划任务名称</param>
            /// <param name="exePath">运行程序路径</param>
            /// <param name="description">计划描述</param>
            public static void CreateOnlogonTask(string name, string exePath, string description = null)
            {
                Microsoft.Win32.TaskScheduler.TaskService service = new Microsoft.Win32.TaskScheduler.TaskService();
                Microsoft.Win32.TaskScheduler.TaskDefinition td = service.NewTask();
                Microsoft.Win32.TaskScheduler.LogonTrigger logonTrigger = new Microsoft.Win32.TaskScheduler.LogonTrigger();
                logonTrigger.Delay = TimeSpan.FromSeconds(30);//延时30秒执行
                td.Triggers.Add(logonTrigger);//添加触发器
                Microsoft.Win32.TaskScheduler.ExecAction execAction = new Microsoft.Win32.TaskScheduler.ExecAction(exePath);
                td.Actions.Add(execAction);//添加操作项
                td.RegistrationInfo.Description = description;//任务描述
                td.Principal.RunLevel = Microsoft.Win32.TaskScheduler.TaskRunLevel.Highest;//最高权限运行
                service.RootFolder.RegisterTaskDefinition(name, td);
            }
    
  • 相关阅读:
    616无趣
    安装elasticsearch的问题
    导出PDF数据
    生活本苦,奈何年华
    分享一个sql查询重复记录
    springboot的java打印票据-4
    springboot的java打印票据-3
    springboot的java打印票据-2
    react 学习笔记
    原生可拖动表格
  • 原文地址:https://www.cnblogs.com/zzr-stdio/p/12186548.html
Copyright © 2011-2022 走看看