PDA

View Full Version : run a batch file as scheduled task - in vista


osaddict
9 Sep 2007, 3:18pm
Hey everyone, if been searching high and low, and i cant remember the exact text required to run a batch file as a scheduled task...

For example i want to run backup.bat, which ill store in say L:\misc\backup.bat

I've run the batch file and it does exactly what i want - but now i want to automate it.

I played with this stuff a long time ago, ive googled for a while and i just cant fine the correct text!

lightnin
9 Sep 2007, 6:19pm
set it up in the task scheduler. be sure to set up the schedule like so:

"cmd /c Batchfilename.bat"

or it wont execute properly.


or, uninstall windows, install a *nix, and stick it in crontab lol


edit:

i forgot there's also the schtasks command. you have to have Task Scheduler running for this to work though, and i'm not 100% sure it works in vista.


SCHTASKS

Create, delete, edit, list, start or stop a scheduled task.
Works on local or remote computers.

Syntax:

SCHTASKS /Create create_options

SCHTASKS /Delete [/S system [/U username [/P password]]] /TN taskname [/F]

SCHTASKS /Query [/S system [/U username [/P password]]] [/FO format] [/NH] [/V]

SCHTASKS /Run [/S system [/U username [/P password]]] /TN taskname
SCHTASKS /End [/S system [/U username [/P password]]] /TN taskname

SCHTASKS /Change [/S system [/U username [/P password]]] {[/RU username] [/RP password] [/TR taskrun]} /TN taskname

create_options:
[/S system #remote system (default is local)
[/U username [/P password]]] #submit job under this name
[/RU username [/RP password]] #run job under this name
/SC schedule [/MO modifier] #When to run, see below
[/D day] #day = MON,TUE,WED,THU,FRI,SAT,SUN
[/M months] #month=JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC.
[/I idletime] #1 - 999 minutes (ONIDLE task only)
/TN taskname /TR taskrun #Name and pathname for task
/ST starttime #HH:MM:SS (24 hour)
[/SD startdate] [/ED enddate] # start and end date "dd/mm/yyyy"

query_del_options:
/F Force delete, ignore warnings even if the task is currently runnning.
/FO format Output format: TABLE, LIST, CSV
/NH No header
/V Verbose output

Notes:
For MONTHLY schedules give the DAY as a number 1 - 31 (default=1)

To prompt for the password, specify /RP * or /RP none

The User Account under which the Schedule service runs may require specific file access permissions, user permissions and drive mappings.

For the system account, /RU username can be written as "", "NT AUTHORITY\SYSTEM" or "SYSTEM", a Password is not required.

/SC schedule The schedule frequency.
Valid schedules: MINUTE,HOURLY,DAILY,WEEKLY,MONTHLY, ONCE,ONSTART,ONLOGON,ONIDLE.

/MO modifiers allow finer control:

MINUTE: 1 - 1439 minutes.
HOURLY: 1 - 23 hours.
DAILY: 1 - 365 days.
WEEKLY: weeks 1 - 52.
ONCE: No modifiers.
ONSTART: No modifiers.
ONLOGON: No modifiers.
ONIDLE: No modifiers.
MONTHLY: 1 - 12, or FIRST, SECOND, THIRD, FOURTH, LAST, LASTDAY.

Task Scheduler options are stored in the registry

HKLM\SOFTWARE\Microsoft\SchedulingAgent\

Examples:

Create a daily task to run at 11 pm

SCHTASKS /Create /SC weekly /D MON,TUE,WED,THU,FRI /TN MyDailyBackup /ST 23:00:00 /TR c:\backup.cmd /RU MyDomain\MyLogin /RP MyPassword

Delete the task above

SCHTASKS /Delete /TN "MyDailyBackup" /f

osaddict
9 Sep 2007, 9:26pm
I looked in to it further, and actually resorted to the help files, it seems to work if you literally just put in the file location of the batch file, as it specifies.

I thought i had to use cscript or wscript etc like i had done before on xp, but this seems to work - i tested it out and it performed as expected!

Thanks for the reply :)