筛选计划任务列表并仅显示“下次运行时间”

时间:2014-12-05 15:54:32

标签: cmd schtasks.exe schtasks

我正在运行的

schtasks cmd:schtasks /query /fo LIST /tn PDFGeneration

结果:

Folder: \
HostName:      MIA-MATERNITY
TaskName:      \PDFGeneration
Next Run Time: 06/01/2015 02:35:00
Status:        Ready
Logon Mode:    Interactive only

我希望只能展示:

Next Run Time: 06/01/2015 02:35:00

是否可以这样做?

DavidPostill的回答 - Check the full answer by him

  

从命令行:

for /f "usebackq tokens=5" %a in (`schtasks /query /fo LIST /tn PDFGeneration ^| findstr /c:"Next Run Time"`) do echo %a
From a batch file:
     

请注意,在批处理文件中,%a必须替换为%% a。

for /f "usebackq tokens=5" %%a in (`schtasks /query /fo LIST /tn PDFGeneration ^| findstr /c:"Next Run Time"`) do echo %%a

2 个答案:

答案 0 :(得分:1)

参考FINDSTR - Search for strings in files

  

<强>语法

     

FINDSTR [options] [/F:file] [/C:string] [/G:file] [/D:DirList] [/A:color] [/OFF[LINE]] [string(s)] [pathname(s)]

     

FINDSTR [options] [/F:file] [/R] [/G:file] [/D:DirList] [/A:color] [/OFF[LINE]] [string(s)] [pathname(s)]

     

<强>关键

     

string要搜索的文字。 pathname(s)要发送的文件   搜索。
    /C:string 将字符串用作文字搜索字符串   /R使用字符串作为正则表达式   /G:file得到   从文件中搜索字符串(/代表控制台)   /F:file得到   文件中的路径名列表(/代表控制台)   /A:color以彩色显示文件名(2个十六进制数字)
  /d:dirlist搜索以逗号分隔的目录列表。

以下命令将查找包含确切字符串Next Run Time

的所有行
schtasks /query /fo LIST /tn PDFGeneration | findstr /c:"Next Run Time"

如何从输出中提取时间?

Next Run Time: 06/01/2015 02:35:00

这可以使用FOR /F - Loop command: against the results of another command完成并提取第5个标记(默认情况下,for token delimiter是 space 字符。)

从命令行:

for /f "usebackq tokens=5" %a in (`schtasks /query /fo LIST /tn PDFGeneration ^| findstr /c:"Next Run Time"`) do echo %a

从批处理文件:

请注意,批处理文件%a必须替换为%%a

for /f "usebackq tokens=5" %%a in (`schtasks /query /fo LIST /tn PDFGeneration ^| findstr /c:"Next Run Time"`) do echo %%a

答案 1 :(得分:-1)

schtasks /query /fo LIST /tn PDFGeneration | findstr Next

产生所需的输出。