How to execute a scheduled task with "schtasks" without opening a new command line window?

Misha Moroshko picture Misha Moroshko · Oct 2, 2010 · Viewed 18k times · Source

I have a batch file that creates a scheduled task using schtasks like this:

schtasks /create /tn my_task_name 
                 /tr "...\my_path\my_task.bat"
                 /sc daily
                 /st 10:00:00 
                 /s \\my_computer_name 
                 /u my_username    
                 /p my_password

It works OK except the fact that when my_task.bat is executed - a new command line window is opened (and closed after execution).

I would like to avoid opening this new window (i.e. to run the task in quiet mode, in the background).

I thought to use

start /b ...\my_path\my_task.bat

but I don't know how, because since I have to call start from the batch file I need to precede it with cmd /c, which again causes the new window to open.

How could I solve this problem ?

Answer

Rutesh Makhijani picture Rutesh Makhijani · Oct 2, 2010

You can use the Windows Shell Scripting extensions to execute a batch file in invisible mode.

  • Create a plain text file and name it <scriptname>.vbs

  • Paste the following code in the .vbs file

      Set WshShell = CreateObject("WScript.Shell") 
      WshShell.Run chr(34) & "C:\Batch Files\syncfiles.bat" & Chr(34), 0
      Set WshShell = Nothing
    
  • Change the name and path of you batch file according to your need

  • Save the .vbs file and schedule the same in schtasks