IF exist for scheduled task
Asked Answered
L

1

8

I have created a batch file to check if scheduled task exists and if they don't create them, however, my if exist rule seem to always hit true even though the jobs are not there.

Any ideas?

::Check Rule
IF EXIST SchTasks /QUERY /TN "Cache Task Morning"  ( 
    echo ! Morning rule in place!
    GOTO NEXT 
) ELSE IF NOT EXIST SchTasks /Create /SC DAILY /TN "Cache Task Morning" /TR "C:\Cache Clear\Cache Clear.bat" /ST 09:00 

:NEXT
IF EXIST SchTasks /QUERY /TN "Cache Task Afternoon"  ( 
    echo ! Afternoon rule in place!
    GOTO NEXT TWO
) ELSE IF NOT EXIST SchTasks /Create /SC DAILY /TN "Cache Task Afternoon" /TR "C:\Cache Clear\Cache Clear.bat" /ST 15:00 

:NEXT TWO
IF EXIST SchTasks  /QUERY /TN "Cache Task Evening"  ( 
    echo ! Evening rule in place!
    GOTO CLEAR CACHE 
) ELSE IF NOT EXIST SchTasks /Create /SC DAILY /TN "Cache Task Evening" /TR "C:\Cache Clear\Cache Clear.bat" /ST 18:00 
Livvie answered 10/1, 2017 at 13:38 Comment(2)
You cant use IF EXIST/IF NOT EXIST like that, you need to run SchTasks and capture either the output or ErrorLevel and run your commmands according to what they return.Louisiana
Open a new command prompt window, type help if or if /? and read the help very carefully; you will learn what if exist is for...Kentonkentucky
B
24

You cannot use if exist with schtasks, this is not the purpose of if exist.

use either

schtasks /query /TN "task_name" >NUL 2>&1 || schTasks /Create /SC DAILY /TN "task_name" ...

or

schtasks /query /TN "task_name" >NUL 2>&1
if %errorlevel% NEQ 0 schTasks /Create /SC DAILY /TN "task_name" ...

>NUL 2>&1 suppress success or error output, but we have errorlevel set to 0 if success, or not 0 if failure.

Both are pretty the same. In the first case we use the cmd && and || operators, where && means previous command succesful and || means previous command failed.

as in

mycommand && echo success || echo error

As we only want to test failure, then use only || (previous command failed).

Blocking answered 10/1, 2017 at 15:37 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.