当我运行这个时:
schtasks.exe /query /tn "GoogleUpdateTaskMachineUA"
我明白了:
Folder: \
TaskName Next Run Time Status
======================================== ====================== ===============
GoogleUpdateTaskMachineUA N/A Disabled
有没有办法仅检索状态?
答案1
尝试schtasks /query
使用/v
选项进行详细输出和/fo list
列表格式。然后使用find
命令过滤结果。
schtasks /query /tn "GoogleUpdateTaskMachineUA" /v /fo list | find "Status:"
你会得到像这样的字符串
Status: Running
要提取状态值使用for
命令:
for /f "delims=: tokens=2" %a in ('schtasks /query /tn "GoogleUpdateTaskMachineUA" /v /fo list ^| find "Status:"') do @echo %a
- 在批处理文件中使用
%a
替换%%a
- 要在命令中使用类似
|
或 的符号,请使用>
for
^
答案2
除非您真的必须使用schtasks.exe
,否则请使用 PowerShell 及其所有卓越的输出和格式化选项:
Get-ScheduledTask | ? TaskName -eq GoogleUpdateTaskMachineUA | Select State | ft -AutoSize
或者
(Get-ScheduledTask | Where TaskName -eq GoogleUpdateTaskMachineUA ).State
答案3
有没有办法仅检索状态?
使用以下命令:
for /f "usebackq skip=3 tokens=4" %a in (`schtasks.exe /query /tn "GoogleUpdateTaskMachineUA"`) do @echo %a
笔记:
skip=3
- 忽略标题行tokens=4
- 抓取第 4 个令牌(状态栏中的值)- 要在批处理文件中使用,请替换
%a
为%%a
使用示例:
F:\test>schtasks.exe /query /tn "GoogleUpdateTaskMachineUA"
Folder: \
TaskName Next Run Time Status
======================================== ====================== ===============
GoogleUpdateTaskMachineUA 03/02/2016 12:17:00 Ready
F:\test>for /f "usebackq skip=3 tokens=4" %a in (`schtasks.exe /query /tn "GoogleUpdateTaskMachineUA"`) do @echo %a
Ready
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
- 对于/f- 循环命令以执行另一个命令的结果。
- 调度任务- 创建/编辑计划作业/任务。作业可以在本地或远程计算机上创建。
答案4
如果您使用 Windows 7 编写 Powershell 脚本并且无法使用Get-ScheduledTask
,则可以考虑使用:
$status = ((schtasks /query /S 'yourServer' /TN yourTask)[4] -split ' +')[2]
它看起来像这样:
### Running this:
schtasks /query /S 'yourServer' /TN yourTask
### Leads to the output below.
Folder: \
TaskName Next Run Time Status
======================================== ====================== ===============
yourTask N/A Running
### Running this:
$status = ((schtasks /query /S 'yourServer' /TN yourTask)[4] -split ' +')[2]
Write-Host "$($status)"
### Leads to the output below
Running