|Purpose:||Monitor the current date and time|
|Format:||DATEMONITOR [/C [yyyy-mm-dd hh:mm]]|
DATEMONITOR yyyy-m-dd hh:mm n command
|n||Number of repetitions (or FOREVER)|
|yyyy-mm-dd||The date to match|
|hh:mm||The time to match|
|command||Command to execute when the specified date and time matches the current date and time|
DATEMONITOR monitors the current date and time, and executes the specified command when the current date and time match the saved date and time. You can use a * in the date fields if you want to run a command at a specific time every day. For example:
datemonitor *-*-* 23:59 forever echo It's almost midnight!
If you want to run a command on the first day of every month:
datemonitor *-*-1 00:01 forever echo It's the beginning of a new month!
If you don't enter any arguments, if DATEMONITOR is active it will display the repeat count and the command.
DATEMONITOR sets two environment variables when the date and time match and the trigger is set:
|_datemonitor||The current date in yyyy-mm-dd format|
|_timemonitor||The current time in hh:mm (24-hour) format|
The command line will be parsed and expanded before DATEMONITOR is executed, so if you want to pass redirection characters or variables to command you will need to protect them (by enclosing in single back quotes, doubling the %'s, or using command grouping).
If the last argument on the line is a single (, it is interpreted as the beginning of a command group. DATEMONITOR will append the following lines (in a batch file) or prompt you for more input (at the command line) until it gets a closing ).
The monitoring runs asynchronously in a separate thread. When the condition is triggered, the command will be executed immediately. This may cause problems if you try to write to the display or access files while the main TCC thread is also performing I/O. You may need to use START or DETACH in command to avoid conflicts.