Wait batch file till specified time
Asked Answered
G

3

6

I want to start an application through batch file at a specified time. I'm able to launch it using:

@echo off
start notepad c:\test.txt

But how do I make the batch file start the task at a specified time? The time will be mentioned in the batch file.

Grimonia answered 17/3, 2013 at 3:15 Comment(0)
A
5

The at command looks pretty promising. Try reading this.

It appears that if you put in at 15:00 "echo Done", the command prompt will output "Done" at 3:00PM the same day (or following).

This is the documentation for the at command

AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\computername] time [/INTERACTIVE]
    [ /EVERY:date[,...] | /NEXT:date[,...]] "command"

\\computername     Specifies a remote computer. Commands are scheduled on the
                   local computer if this parameter is omitted.
id                 Is an identification number assigned to a scheduled
                   command.
/delete            Cancels a scheduled command. If id is omitted, all the
                   scheduled commands on the computer are canceled.
/yes               Used with cancel all jobs command when no further
                   confirmation is desired.
time               Specifies the time when command is to run.
/interactive       Allows the job to interact with the desktop of the user
                   who is logged on at the time the job runs.
/every:date[,...]  Runs the command on each specified day(s) of the week or
                   month. If date is omitted, the current day of the month
                   is assumed.
/next:date[,...]   Runs the specified command on the next occurrence of the
                   day (for example, next Thursday).  If date is omitted, the
                   current day of the month is assumed.
"command"          Is the Windows NT command, or batch program to be run.
Antho answered 17/3, 2013 at 3:28 Comment(3)
When I used 'at' in batch file, it did nothing. When I used it at command prompt, it said: "The AT command has been deprecated. Please use schtasks.exe instead." I'm using windows 8.Grimonia
I personally find schtasks too confusing, however you can find out the syntax by putting in schtask /create /?.Antho
It works best to format screen output as code. I reformatted the doc for you.Griffin
B
1

You can use this:

@echo off
timeout 5
start notepad c:\test.txt
Barley answered 17/3, 2013 at 3:21 Comment(2)
this works, but is there any way to hide the console that is displayed during the timeout?Grimonia
The ping command comes to mind. Search how to sleep in a batch file and millions of things will come up.Antho
A
0

If you have permission, schtasks works, from the GUI is easiest but from the command lines works also.

Syntax:

schtasks.exe /CREATE /S {computer name} /SC ONCE /TN {task name} /TR {batch file location and name} /ST {hh:mm} /RU {user}

For example:

schtasks.exe /CREATE /S PC1 /SC ONCE /TN runBatch /TR c:\users\user1\Documents\run.bat /ST 12:30 /RU User1

Amora answered 24/10, 2022 at 13:39 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.