无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3080|回复: 8
打印 上一主题 下一主题

请教个问题

[复制链接]
跳转到指定楼层
1#
发表于 2012-5-4 12:01:23 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
dos 下有没有办法判断系统中某个计划任务是停用状态或启用状态 ?
9#
 楼主| 发表于 2012-5-7 18:25:14 | 只看该作者

回复 #8 pznpt 的帖子

测试通过,非常感谢 pznpt
回复

使用道具 举报

8#
发表于 2012-5-6 08:58:41 | 只看该作者

回复 #7 2012_amwyy 的帖子

稍做修改应该就可以了
  1. @echo off&setlocal enabledelayedexpansion
  2. set "task=test"
  3. for /f "tokens=1* delims=:" %%a in ('schtasks /query /v /fo list') do (
  4.    set/a n+=1
  5.    for /f "tokens=*" %%c in ("%%b") do (
  6.       if /i "%%a"=="taskname" if /i "%%c"=="!task!" set/a m=!n!+11
  7.       if "!n!"=="!m!" set "var=%%c"&goto :11
  8.    )
  9. )
  10. :11
  11. echo,!var!
  12. pause
复制代码
回复

使用道具 举报

7#
 楼主| 发表于 2012-5-6 08:24:29 | 只看该作者

回复 #6 pznpt 的帖子

非常谢谢 pznpt ,对于单个的 tasks 是可以取到当前的状态,如果系统中有多个计划任务(test、test1、test2、test3、test4) ,如何只取到其中的某一个计划任务的状态 ?


HostName:                             test-98D4D0
TaskName:                             test
Next Run Time:                        Disabled
Status:                              
Logon Mode:                           Interactive/Background
Last Run Time:                        8:10:21 AM, 5/6/2012
Last Result:                          0
Creator:                              Administrator
Schedule:                             Disabled
Task To Run:                          C:\test.bat
Start In:                             C:\
Comment:                              N/A
Scheduled Task State:                 Disabled
Scheduled Type:                       Daily
Start Time:                           11:43:00 AM
Start Date:                           5/5/2012
End Date:                             N/A
Days:                                 Everyday
Months:                               N/A
Run As User:                          test-98D4D0\cls
Delete Task If Not Rescheduled:       Disabled
Stop Task If Runs X Hours and X Mins: 72:0
Repeat: Every:                        Disabled
Repeat: Until: Time:                  Disabled
Repeat: Until: Duration:              Disabled
Repeat: Stop If Still Running:        Disabled
Idle Time:                            Disabled
Power Management:                     No Start On Batteries, Stop On Battery Mode
HostName:                             test-98D4D0
TaskName:                             test1
Next Run Time:                        8:13:00 AM, 5/7/2012
Status:                              
Logon Mode:                           Interactive/Background
Last Run Time:                        Never
Last Result:                          0
Creator:                              Administrator
Schedule:                             At 8:13 AM every day, starting 5/6/2012
Task To Run:                          C:\test.bat
Start In:                             C:\
Comment:                              N/A
Scheduled Task State:                 Enabled
Scheduled Type:                       Daily
Start Time:                           8:13:00 AM
Start Date:                           5/6/2012
End Date:                             N/A
Days:                                 Everyday
Months:                               N/A
Run As User:                          test-98D4D0\cls
Delete Task If Not Rescheduled:       Disabled
Stop Task If Runs X Hours and X Mins: 72:0
Repeat: Every:                        Disabled
Repeat: Until: Time:                  Disabled
Repeat: Until: Duration:              Disabled
Repeat: Stop If Still Running:        Disabled
Idle Time:                            Disabled
Power Management:                     No Start On Batteries, Stop On Battery Mode
HostName:                             test-98D4D0
TaskName:                             test2
Next Run Time:                        8:25:00 AM, 5/7/2012
Status:                              
Logon Mode:                           Interactive/Background
Last Run Time:                        Never
Last Result:                          0
Creator:                              Administrator
Schedule:                             At 8:25 AM every Mon of every week, starting 5/6/2012
Task To Run:                          C:\test.bat
Start In:                             C:\
Comment:                              N/A
Scheduled Task State:                 Enabled
Scheduled Type:                       Weekly
Start Time:                           8:25:00 AM
Start Date:                           5/6/2012
End Date:                             N/A
Days:                                 MONDAY
Months:                               N/A
Run As User:                          test-98D4D0\cls
Delete Task If Not Rescheduled:       Disabled
Stop Task If Runs X Hours and X Mins: 72:0
Repeat: Every:                        Disabled
Repeat: Until: Time:                  Disabled
Repeat: Until: Duration:              Disabled
Repeat: Stop If Still Running:        Disabled
Idle Time:                            Disabled
Power Management:                     No Start On Batteries, Stop On Battery Mode
HostName:                             test-98D4D0
TaskName:                             test3
Next Run Time:                        Disabled
Status:                              
Logon Mode:                           Interactive/Background
Last Run Time:                        Never
Last Result:                          0
Creator:                              Administrator
Schedule:                             Disabled
Task To Run:                          C:\test.bat
Start In:                             C:\
Comment:                              N/A
Scheduled Task State:                 Disabled
Scheduled Type:                       Monthly
Start Time:                           8:26:00 AM
Start Date:                           5/1/2012
End Date:                             N/A
Days:                                 1
Months:                               JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC
Run As User:                          test-98D4D0\cls
Delete Task If Not Rescheduled:       Disabled
Stop Task If Runs X Hours and X Mins: 72:0
Repeat: Every:                        Disabled
Repeat: Until: Time:                  Disabled
Repeat: Until: Duration:              Disabled
Repeat: Stop If Still Running:        Disabled
Idle Time:                            Disabled
Power Management:                     No Start On Batteries, Stop On Battery Mode
HostName:                             test-98D4D0
TaskName:                             test4
Next Run Time:                        8:27:00 AM, 5/13/2012
Status:                              
Logon Mode:                           Interactive/Background
Last Run Time:                        Never
Last Result:                          0
Creator:                              Administrator
Schedule:                             At 8:27 AM every Sun of every week, starting 5/6/2012
Task To Run:                          C:\test.bat
Start In:                             C:\
Comment:                              N/A
Scheduled Task State:                 Enabled
Scheduled Type:                       Weekly
Start Time:                           8:27:00 AM
Start Date:                           5/6/2012
End Date:                             N/A
Days:                                 SUNDAY
Months:                               N/A
Run As User:                          test-98D4D0\cls
Delete Task If Not Rescheduled:       Disabled
Stop Task If Runs X Hours and X Mins: 72:0
Repeat: Every:                        Disabled
Repeat: Until: Time:                  Disabled
Repeat: Until: Duration:              Disabled
Repeat: Stop If Still Running:        Disabled
Idle Time:                            Disabled
Power Management:                     No Start On Batteries, Stop On Battery Mode

[ 本帖最后由 2012_amwyy 于 2012-5-6 08:33 编辑 ]
回复

使用道具 举报

6#
发表于 2012-5-6 00:41:33 | 只看该作者

回复 #1 2012_amwyy 的帖子

请不要给我发短消息,请直接回复帖子。谢谢。

@echo off
set "state=Scheduled Task State"
for /f "tokens=1,2 delims=:" %%a in ('schtasks /query /fo list /v^|findstr /ic:"%state%"') do (
  for /f "tokens=*" %%c in ("%%b") do set "var=%%c"
)
echo,%var%
pause
回复

使用道具 举报

5#
发表于 2012-5-4 17:56:33 | 只看该作者

回复 #3 2012_amwyy 的帖子

假设计划任务名ABC。试试下面的代码,最后应该得到变量var,值为“已启用”或“已停用”。

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1* delims=: " %%a in ('schtasks /query /v /fo list') do (
  3.    set/a n+=1
  4.    if "%%a"=="任务名" if /i "%%b"=="abc" set/a m=!n!+10
  5.    if "%%a"=="计划任务状态" if "!n!"=="!m!" set "var=%%b"&goto :11
  6. )
  7. :11
  8. echo !var!
  9. pause
复制代码
回复

使用道具 举报

4#
发表于 2012-5-4 17:23:40 | 只看该作者
记得cmd下使用at命令设置、查看、删除计划任务。可以每天、每星期几、每月几号,看帮助就可以了。
回复

使用道具 举报

3#
 楼主| 发表于 2012-5-4 16:08:58 | 只看该作者
原帖由 pznpt 于 2012-5-4 15:07 发表
纯DOS还是CMD命令行?

纯DOS下没这功能;CMD命令行下用schtasks配合findstr可以搞定。


是cmd 命令,能说说具体怎么用吗 ?先谢谢了 。
回复

使用道具 举报

2#
发表于 2012-5-4 15:07:57 | 只看该作者
纯DOS还是CMD命令行?

纯DOS下没这功能;CMD命令行下用schtasks配合findstr可以搞定。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-28 05:38

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表