Windows任务计划程序起始于参数自动修改

Windows任务计划程序建立后,手工运行可以成功,但计划任务自动运行却不能成功,搜索网络,原来是起始于参数没有配置,这个参数的英文名字是start-in。它保证任务计划程序的WorkingDirectory就是你所设置的路径,可惜的是这个参数在win7或者win2008上只能手动设置,那如何才能使用命令自动进行修改呢?

试过网友的很多方法,目前总结出两种可行的方法来:

1 针对Windows2012,使用powershell进行参数设置

参考:

specifying “start-in” directory in schtasks command in windows

execType Complex Type

2 针对win7 或者Windows2008,可以通过修改xml方式,自动修改:

首先:第一次通过命令创建任务计划程序

然后:通过命令导出为xml格式

再次:通过脚本修改xml,添加起始于参数

最后:重新导入该xml(覆盖)即可

说了那么多,应该怎么使用命令实现呢,下面是我的一个测试例子

主要用到的命令是:

  1. Create your task via schtasks.exe /create /tn MyTask ...
  2. Export your task to XML via schtasks.exe /query /xml /tn MyTask > MyTask.xml
  3. Update this XML via XSLT or a search/replace
  4. Re-import (overwriting the old task) via schtasks.exe /create /tn MyTask /xml MyTask.xml /f
:: 修改计划任务程序,由于中文导出报错,所以提前设置活动代码页编号437 MS-DOS 美国英语

chcp 437
::开始导出名字为smdb_agent的任务计划程序
schtasks.exe /query /xml /tn SMDB_Agent > c:\tmp\SMDB_Agent.xml
goto modifyAgent

:modifyAgent
::如下的修改操作主要是修改xml添加run directory
set "DirPath=D:\smdb_agent\etc\"
cd /D %DirPath%..\setup
set "str1=^<WorkingDirectory^>%cd%^<^/WorkingDirectory^>"
for /f "delims=!" %%i in (‘type c:\tmp\SMDB_Agent.xml‘) do (
echo %%i>>c:\tmp\SMDB_AgentNew.xml
echo "%%i"|findstr "Command" >nul&&echo %str1%>>c:\tmp\SMDB_AgentNew.xml)
goto import

::修改完成后就可以覆盖导入了
:import
schtasks.exe /create /tn SMDB_Agent /xml c:\tmp\SMDB_AgentNew.xml /f

参考:

Specifying the running directory for Scheduled Tasks using schtasks.exe

在 Windows server 2008 下计划任务无法正常执行bat批处理文件

时间: 2024-10-03 12:29:24

Windows任务计划程序起始于参数自动修改的相关文章

如何为Windows Forms应用程序添加启动参数(Start-Up Parameters)

很多场合下,我们需要通过命令行或者快捷方式在Windows Forms程序启动时向其传递参数. 这些参数可能是用来加载某一个文档,或者是应用程序的初始化配置文件. 特别是对那些需要高度自定义配置的大程序,经常需要调整运行参数来帮助使用者获得不同的运行结果. 通常,我们可以通过以下两种方式来实现这个需求: 重载入口点函数(Main) 利用Environment类 重载入口点函数(Main) 我们在Visual Studio中创建Windows Forms程序时, VS会自动帮我们创建一个默认的入口

Windows 任务计划程序执行PHP脚本

首先本地得先打开Apache,能保证可以运行PHP脚本. 打开任务计划程序步骤: 开始图标=>附件=>系统工具=>任务计划程序 如下图: 主界面如下 点击左边的任务计划程序库,会出来当前执行的任务列表,要想修改任务,直接选中,右击=>属性 开始建立新的任务,选中 """任务计划程序库",右击=>创建任务 进入创建新任务界面,最上方有5个点击按钮,常规-触发器-操作-条件-设置 常规:给该任务起名字,以便于能在上一步操作的列表中显示 触发

[转] windows 上用程序putty使用 ssh自动登录Linux(Ubuntu)

需求: 在Win7电脑上使用putty(一种ssh客户端)连接Ubuntu 工具: puttygen.exe 和 putty.exe 第一步:生成密匙 运行puttygen.exe,选择需要的密匙类型和长度,使用默认的SSH2(RSA),长度设置为1024就可以了. passphrase可以为空,免得登录时还是要输入一次密码. 点击Save private key 按钮保存私匙,例如key.ppk: 复制puttygen public Key 文本框内的内容到剪贴板中. 第二步:上传密匙 用Pu

Windows任务计划创建计划,定时执行PowerShell命令

[环境介绍] 操作系统:Windows Server 2012 R2,64位操作系统 PowerShell版本:PowerShell 1.0 脚本位置:C:\BackUp.ps1 启动目录:C:\Windows\SysWOW64\WindowsPowerShell\v1.0\PowerShell.exe [步骤图] 1.打开Windows任务计划 2.点击“创建任务” 3.输入“名称”,“配置”选择你对应的系统配置即可. 4.选择“触发器"选项卡,点击”新建“按钮 5.根据自己的需求,填写完触发

win7系统中任务计划程序的使用与查询

任务计划程序是电脑中的一个好工具,用好了,会让我们使用电脑变的很便捷,具体经验教程如下所示: 工具/原料 装有win7系统的电脑 方法/步骤 在桌面找到“我的电脑”,右击,弹出窗口,找到“管理”,如下图: 点击“管理”,出现新的窗口,即是计算机管理窗口,找到“任务计划程序”,展开,找到“任务计划程序库”,点击“任务计划程序库”,右边就会出现任务计划程序任务列表,这样就查询到了,如下图: 右击“任务计划程序库”,弹出新窗口,点击“创建基本任务”,会弹出新的窗口,如下图: 在新窗口中输入任务名称和描

Powershell脚本配合计划任务程序实现组策略自动备份

同样是在今天遇到了一个题目,要求每五分钟自动备份一次组策略(GPO),绞尽脑汁发现图形界面并不能解决这个问题,于是开始想Powershell能不能解决,最后真的解决了.下面是我做的过程 首先放脚本: 解释一下: 导入grouppolicy这个模块,后边要用它的方法 定义一个时间变量,每天的备份都会记录在一个以日期命名的文件夹 指定在C盘下某目录新建文件夹 然后指定备份所有组策略到该文件夹 保存并运行: 成功备份,开心 接下来才是重头戏: 打开任务计划程序,点击创建任务(注意是创建任务而不是创建基

Windows Server 2008 计划任务配置(任务计划程序)每分钟执行BAT

来源:本站整理 作者:佚名 时间:2014-06-03 TAG: 我要投稿 很多人在问我: 1.Windows Server 2008 计划任务在哪里配置? 2.Windows Server 2008 可以配置每分钟或是每小时执行我的任务吗? 答案是:可以! 首先Windows Server 2008不同于其他服务器操作系统和Windows Server 2003有着很大的区别,计划任务的名称是“任务计划程序”不在控制面板里,而是在“管理工具”里. 由于服务器需要做些任务,定时执行,自己写程序吧

【定时任务|开机启动】Windows Server 2008/2012 计划任务配置(任务计划程序)每分钟执行BAT

打开计划任务快捷方式(在 “管理工具”内): C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\Task Scheduler.lnk 很多人在问我: 1.Windows Server 2008 计划任务在哪里配置? 2.Windows Server 2008 可以配置每分钟或是每小时执行我的任务吗? 答案是:可以! 首先Windows Server 2008不同于其他服务器操作系统和Windows

Windows Azure系列 -《基础篇》- 计划程序

打开Windows Azure管理门户,在左侧边栏点击设置,展开计划程序页面,我们可以看到目前的作业情况: 在计划程序中,我们可以做的就是定制特定管理作业,并查看以往作业的执行情况. 点击作业集合,然后点击创建计划程序作业,即可创建你自己的作业, 在接下来的页面选择快速创建,填写作业名称并选择区域,点击下一步 在作业页面,填写作业的相关信息,包括名称.类型.方法等 确认重复周期和启动时间即可. 接下来就可以看到作业集合的状态, 以及可以查看各作业的执行情况,通过筛选可以有选择的查看所要关注的作业