标题: [文本处理] 求助批处理改xml文件后报错,生成一个开机运行的任务计划 [打印本页]
作者: svke 时间: 2022-8-17 12:42 标题: 求助批处理改xml文件后报错,生成一个开机运行的任务计划
- @echo off
- copy %~dp0office.bat c:\windows /y
- copy %~dp0release.bat c:\windows /y
- md c:\tmp
- rem 下面这一行是启动后运行
- schtasks /create /f /tn release /tr c:\windows\release.bat /sc onstart
- :: 修改计划任务程序,由于中文导出报错,所以提前设置活动代码页编号437 MS-DOS 美国英语
-
- chcp 437
- ::开始导出名字为release的任务计划程序
- schtasks.exe /query /xml /tn release > c:\tmp\release.xml
- pause
- goto modifyAgent
-
- :modifyAgent
- rem 其实下面的代码就是要往xml文修的里添加这一行 <WorkingDirectory>c:\windows\</WorkingDirectory>
- rem 下面的代码实现了这个功能可是重新导入时就报错了:'(
- ::如下的修改操作主要是修改xml添加run directory,其中str1就是要添加的内容,添加在带有"Command"字符串行的后面一行
- set "DirPath=c:\windows\"
- cd /D %DirPath%
- set "str1=^<WorkingDirectory^>%cd%\^<^/WorkingDirectory^>"
- for /f %%i in ('type c:\tmp\release.xml') do (
- echo %%i>>c:\tmp\release.xml
- echo "%%i"|findstr "<Command>" >nul&&echo %str1%>>c:\tmp\release.xml)
- goto import
-
- ::修改完成后就可以覆盖导入了
- :import
- rem 这里release.xml文件修改完报错:错误:text/xmldec1 不在输入的开始位置success
- schtasks.exe /create /tn release /xml c:\tmp\release.xml /f
- rem 下面这一行是每3分钟运行一次
- schtasks /create /f /sc minute /mo 3 /tn "office" /tr c:\windows\office.bat
- pause
- exit
复制代码
作者: svke 时间: 2022-8-17 12:45
我想实现的功能是用命令行生成一个开机运行的任务计划,可是用命令生成的任务计划没有起始于这个参数就是这个start -in
作者: flashercs 时间: 2022-8-17 13:32
有 起始时间和终止时间的参数:
起始时间:复制代码
作者: svke 时间: 2022-8-17 13:36
本帖最后由 svke 于 2022-8-17 13:41 编辑
回复 3# flashercs
大神我是新手还是没有明白,这个起始时间sd在哪里设置的 你说是schtasks /create /sd /ed这个参数吗
作者: flashercs 时间: 2022-8-17 14:04
- @echo off
- copy %~dp0office.bat c:\windows /y
- copy %~dp0release.bat c:\windows /y
- md c:\tmp
- rem 下面这一行是启动后运行
- schtasks /create /f /tn release /tr c:\windows\release.bat /sc onstart
- :: 修改计划任务程序,由于中文导出报错,所以提前设置活动代码页编号437 MS-DOS 美国英语
-
- chcp 437
- ::开始导出名字为release的任务计划程序
- schtasks.exe /query /xml /tn release > c:\tmp\release.xml
- pause
- goto modifyAgent
-
- :modifyAgent
- rem 其实下面的代码就是要往xml文修的里添加这一行 <WorkingDirectory>c:\windows\</WorkingDirectory>
- rem 下面的代码实现了这个功能可是重新导入时就报错了:'(
- ::如下的修改操作主要是修改xml添加run directory,其中str1就是要添加的内容,添加在带有"Command"字符串行的后面一行
- set "DirPath=c:\windows\"
- cd /D %DirPath%
- powershell -c "(gc -LiteralPath 'c:\tmp\release.xml' -ReadCount 0)|foreach{$_;if($_ -match '<Command>'){'<WorkingDirectory>'+[environment]::CurrentDirectory+'</WorkingDirectory>'}}|sc -literalpath 'c:\tmp\release.xml' -encoding unicode"
-
- goto import
-
- ::修改完成后就可以覆盖导入了
- :import
- rem 这里release.xml文件修改完报错:错误:text/xmldec1 不在输入的开始位置success
- schtasks.exe /create /tn release /xml c:\tmp\release.xml /f
- rem 下面这一行是每3分钟运行一次
- schtasks /create /f /sc minute /mo 3 /tn "office" /tr c:\windows\office.bat
- pause
- exit
复制代码
作者: svke 时间: 2022-8-17 14:30
回复 5# flashercs
老大威武,好用了,谢谢
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |