8

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

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

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

我想用

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

但我不知道怎么做,因为我必须start从批处理文件中调用,我需要在它前面加上cmd /c,这再次导致新窗口打开。

我该如何解决这个问题?

4

2 回答 2

5

您可以通过为 schtask 指定 /RU 选项来执行此操作。这个选项

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

因此,试试这个

schtasks /create /tn my_task_name 
                  ....
                 /st 10:00:00 
                 /ru "SYSTEM"
                 ....
于 2011-02-08T14:46:09.433 回答
4

您可以使用 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
    
  • 根据需要更改批处理文件的名称和路径

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

于 2010-10-02T15:51:20.843 回答