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);
            }
    
  • 相关阅读:
    【npm】mac下node环境搭建
    pair求解迷宫的最短路径(bfs)
    dos窗口启动关闭Mysql
    二维差分模板
    一维差分模板
    DOS命令
    迷宫搜索dfs实现
    DFS 迷宫问题
    BFS广搜解决迷宫问题(跟着B站大佬手撸)
    蓝桥杯省赛模拟赛
  • 原文地址:https://www.cnblogs.com/zzr-stdio/p/12186548.html
Copyright © 2011-2022 走看看