如何在不打开新命令行窗口的情况下使用“ schtasks”执行计划任务?

Mis*_*hko 6 windows-xp batch-file scheduled-tasks schtasks.exe

我有一个批处理文件,它使用以下命令创建计划的任务schtasks

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
Run Code Online (Sandbox Code Playgroud)

它可以正常工作,除了在my_task.bat执行时-打开一个新的命令行窗口(执行后关闭)。

我想避免打开此新窗口(即在后台以安静模式运行任务)。

我想用

start /b ...\my_path\my_task.bat
Run Code Online (Sandbox Code Playgroud)

但我不知道如何操作,因为由于必须start从批处理文件中调用,因此需要在之前加上cmd /c,这再次导致新窗口打开。

我该如何解决这个问题?

Rut*_*ani 5

您可以使用Windows Shell脚本扩展来将批处理文件执行为不可见模式。

  • 创建一个纯文本文件并命名 <scriptname>.vbs

  • 将以下代码粘贴到.vbs文件中

    Set WshShell = CreateObject("WScript.Shell") 
    WshShell.Run chr(34) & "C:\Batch Files\syncfiles.bat" & Chr(34), 0
    Set WshShell = Nothing
    
    Run Code Online (Sandbox Code Playgroud)
  • 根据需要更改批处理文件的名称和路径

  • 保存.vbs文件并在schtasks中安排相同的时间


pmo*_*mod 5

您可以通过为 schtasks 指定 /RU 选项来做到这一点。这个选项

指定运行任务的用户帐户(用户上下文)。对于系统帐户,有效值为“”、“NT AUTHORITY\SYSTEM”或“SYSTEM”。

因此,试试这个

schtasks /create /tn my_task_name 
                  ....
                 /st 10:00:00 
                 /ru "SYSTEM"
                 ....
Run Code Online (Sandbox Code Playgroud)