WatchDirectory has a Scheduler that can be used to enable or disable the monitoring part (looking for new/changed files) of a task. This post will show you a way to start or stop the task completely and (more important) automatically.
Starting a task from the commandline
The wdrun.exe program (the program that actually "runs" the task) has several commandline options that can be used to start or stop a task. For example, to start the task named Hello, you enter the following command in the Windows "Run..." menu or a command box (cmd.exe):
"C:\Program Files\watchDirectory\wdrun.exe" -start Hello
If the "Hello" task was already running, no bad things happen. To stop the task:
"C:\Program Files\watchDirectory\wdrun.exe" -stop Hello
This will request the task to stop. Even though the command returns immediately, it can take a few seconds before the task is actually stopped.
Starting tasks automatically
Lets assume you have 3 tasks (called T1, T2 and T3) that you want to start automatically. For simplicity, I assume these tasks are configured to run as a Windows Service. Create a batch file (for example called C:\Bin\Start123.bat) with the following content:
"C:\Program Files\watchDirectory\wdrun.exe" -start T1 "C:\Program Files\watchDirectory\wdrun.exe" -start T2 "C:\Program Files\watchDirectory\wdrun.exe" -start T3
Now find the Windows "Scheduled Tasks" applet on the Windows Control panel (its exact location depends on your Windows version). Create a new Scheduled task, and configure it to run this batch file. The Windows Scheduler has flexible options to set the days and times when the Scheduled Task should run.
Obviously, you can create another batch file to stop these tasks (replace -start with -stop), I will leave that as an exercise for the reader.
If the task is not running as a Windows Service
The batch file above will not work properly if the WatchDirectory tasks are configured to run as a "normal" program. What happens is that only task T1 will run, because
the "-start T1" will actually run the task. This causes the batch file to "hang" on the first command.
To start the task in another window so the rest of the batch file will run, we need to use the Windows "START" command.
First, I will show you how NOT to do it (this batch file does NOT work):
REM NOTE THAT THIS BATCH FILE DOES NOT WORK start "C:\Program Files\watchDirectory\wdrun.exe" -start T1 start "C:\Program Files\watchDirectory\wdrun.exe" -start T2 start "C:\Program Files\watchDirectory\wdrun.exe" -start T3
The reason it doesn't work is because the Windows "Start" command will interpret
"C:\Program Files\watchDirectory\wdrun.exe"
to be the Title of the new window. So, even if we are not interested to give the window a title, we must supply one.
Here is a batch file that does work:
start "task 1" "C:\Program Files\watchDirectory\wdrun.exe" -start T1 start "task 2" "C:\Program Files\watchDirectory\wdrun.exe" -start T2 start "task 3" "C:\Program Files\watchDirectory\wdrun.exe" -start T3
The "Start" command has several other possible options, for example you let it open the new window minimized like this:
start "task 1" /MIN "C:\Program Files\watchDirectory\wdrun.exe" -start T1
Hope this helps.
Gert
No comments:
Post a Comment