[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 批处理创建计划任务问题

想用批处理创建一个计划任务。  触发器 为 当从用户会话断开连接时

https://learn.microsoft.com/zh-c ... nds/schtasks-create里没查到相关选项


schtasks create

官方触发器只有这些
/sc <scheduletype>        指定计划类型。 有效值包括:
MINUTE - 指定任务运行前的分钟数。
HOURLY - 指定任务运行前的小时数。
DAILY - 指定任务运行前的天数。
WEEKLY - 指定任务运行前的周数。
MONTHLY - 指定任务运行前的月数。
ONCE - 指定该任务在指定的日期和时间运行一次。
ONSTART - 指定任务在每次系统启动时运行。 可以指定开始日期,也可以在系统下次启动时运行任务。
ONLOGON - 指定任务在用户(任何用户)登录时运行。 可以指定一个日期,也可以在用户下次登录时运行任务。
ONIDLE - 指定任务在系统空闲时间段运行。 可以指定一个日期,也可以在系统下次空闲时运行任务。
ONEVENT - 指定任务基于与系统事件日志中的信息(包括 EventID)匹配的事件运行。

回复 1# qq8899399


使用图形界面创建任务计划,手工设置好所有需要的条件,然后导出xml,将来用命令调用xml文件去创建任务计划:
  1. schtasks /create /ru System /tn "Task for bbs.bathome.net" /xml "C:\BatHome.xml"
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

Origin_MD_Data:JTVCYiU1RCV1NTZERSV1NTkwRCUyMCU1QnVybCUzRGh0dHAlM0EvL3d3dy5iYXRob21lLm5ldC9yZWRpcmVjdC5waHAlM0Znb3RvJTNEZmluZHBvc3QlMjZwaWQlM0QyODMxMTYlMjZwdGlkJTNENjk1NjUlNUQyJTIzJTVCL3VybCU1RCUyMCU1QmklNURCYXRjaGVyJTVCL2klNUQlMjAlNUIvYiU1RCUwQSUwQSUwQSUwQSUwQSV1NjExRiV1OEMyMiV1NTZERSV1NTkwRCV1MzAwMnhtbCV1NzdFNSV1OTA1MyV1MzAwMiV1NEY0NiV1OEZEOSV1NjgzNyV1NTNDMiV1NjU3MCV1ODFFQSV1NUI5QSV1NEU0OSUyMCV1NUMzMSV1NkNBMSV1NkNENSV1NEU4NiV1MzAwMiUwQSUwQSV1NEUwRCV1OEZDNyV1NjYyRiV1NEUwRCV1NjYyRiV1NzcxRiV1NzY4NCV1NTNFQSV1NjcwOXhtbCV1NjVCOSV1NUYwRiV1NjI0RCV1ODg0QyV1NTU0QSV1MzAwMiUwQSUwQSUyMCUyMCUyMCUyMCUwQSUwQSUwQQ==回复 [url=2#]http://www.bathome.net/redirect.php?goto=findpost&pid=283116&ptid=69565]2#[/url][/url] Batcher

感谢回复。xml知道。但这样参数自定义 就没法了。

不过是不是真的只有xml方式才行啊。

TOP

本帖最后由 hfxiang 于 2024-8-16 12:13 编辑

回复 3# qq8899399

可以不用xml,在命令行窗口下试试如下指令
  1. "C:\Windows\SysWOW64\schtasks.exe" /Create /SC ONCE /TN "单次定时23:59关机" /TR  "C:\Windows\SysWOW64\shutdown.exe -f -s" /ST 23:59 /SD 2024/08/16
复制代码

TOP

回复 4# hfxiang


    G:\Downtemp\task>"C:\Windows\SysWOW64\schtasks.exe" /Create /SC ONCE /TN "单次定时23:59关机" /TR  "C:\Windows\SysWOW64\shutdown.exe -f -s" /ST 23:59 /SD 2024/08/16
错误: 参数错误。

TOP

我的诉求是  断开远程桌面后 执行相应的批处理


已解决   使用https://github.com/zzzprojects/findandreplace进行xml文本替换

代码如下。大侠们帮看下。还有些啥能优化修改的么


xml代码


  1. <?xml version="1.0" encoding="UTF-16"?>
  2. <Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  3.   <Triggers>
  4.     <SessionStateChangeTrigger>
  5.       <Enabled>true</Enabled>
  6.       <StateChange>RemoteDisconnect</StateChange>
  7.     </SessionStateChangeTrigger>
  8.   </Triggers>
  9.   <Principals>
  10.     <Principal id="Author">
  11.       <LogonType>Password</LogonType>
  12.       <RunLevel>HighestAvailable</RunLevel>
  13.     </Principal>
  14.   </Principals>
  15.   <Settings>
  16.     <Priority>7</Priority>
  17.   </Settings>
  18.   <Actions Context="Author">
  19.     <Exec>
  20.       <Command>templatelist</Command>
  21.       <Arguments>templatelog</Arguments>
  22.     </Exec>
  23.   </Actions>
  24. </Task>
复制代码




创建计划任务代码
  1. @ECHO OFF
  2. REM https://msdn.microsoft.com/zh-cn/library/windows/desktop/bb736357(v=vs.85).aspx
  3. PUSHD %~DP0
  4. >NUL 2>&1 REG.exe query "HKU\S-1-5-19" || (
  5. ECHO SET UAC = CreateObject^("Shell.Application"^) > "%TEMP%\Getadmin.vbs"
  6. ECHO UAC.ShellExecute "%~f0", "%1", "", "runas", 1 >> "%TEMP%\Getadmin.vbs"
  7. "%TEMP%\Getadmin.vbs"
  8. DEL /f /q "%TEMP%\Getadmin.vbs" 2>NUL
  9. Exit /b
  10. )
  11. ::创建计划任务
  12. ::任务名称,断开远程桌面后自动执行任务
  13. ::任务内容,执行当前目录下run.bat批处理
  14. ::提取配置文件到临时目录
  15. copy /y "%cd%\Bin\config\taskmodel.xml" "%cd%\Bin\Temp\taskmodel.xml"
  16. ::修改配置文件
  17. "%cd%\Bin\fnr\fnr.exe" --cl --dir "%cd%\Bin\Temp" --fileMask "*.xml" --find "templatelist" --replace "%~DP0run.bat"
  18. "%cd%\Bin\fnr\fnr.exe" --cl --dir "%cd%\Bin\Temp" --fileMask "*.xml" --find "templatelog" --replace "%~DP0run.log"
  19. cls
  20. ::删除旧的计划任务
  21. schtasks /delete /tn "断开远程桌面后自动执行任务" /f
  22. cls
  23. echo.
  24. echo.
  25. ::创建计划任务
  26. echo 当前Windows系统登录帐号(必须是管理员帐号)
  27. echo.
  28. echo.
  29. set /p loginname=系统登录帐号:
  30. echo.
  31. echo.
  32. schtasks /create /ru %loginname% /tn "断开远程桌面后自动执行任务" /xml "%cd%\Bin\Temp\taskmodel.xml"
  33. echo.
  34. ::清理临时文件
  35. del /f /q "%cd%\Bin\Temp\*.*"
  36. ECHO.&ECHO 创建完成,任意键关闭!&pause>nul &exit
复制代码

TOP

回复 2# Batcher


    我更新了我的批处理。麻烦帮看下。还有什么优化或者修改的么

TOP

回复 5# qq8899399

/TN "单次定时23:59关机" 不支持西文冒号(:),改用中文冒号(:)即可,4楼已修正,测试正常

TOP

回复 8# hfxiang


    可以运行了。不过你没看明白我的需求。 我更新了下。

TOP

应该可用ONEVENT触发器
去事件查看器里"断开远程桌面"的事件
然后参考帮助那个
SCHTASKS /Create /SC ONEVENT /EC System /MO *[System/EventID=101]
试试整出来

TOP

返回列表