【问题标题】:How to execute a scheduled task with "schtasks" without opening a new command line window?如何在不打开新命令行窗口的情况下使用“schtasks”执行计划任务?
【发布时间】:2011-04-20 06:33:16
【问题描述】:

我有一个批处理文件,它使用 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,这又会导致新窗口打开。

我该如何解决这个问题?

【问题讨论】:

    标签: windows-xp batch-file scheduled-tasks windows-task-scheduler


    【解决方案1】:

    您可以使用 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 中安排相同的时间

    【讨论】:

    • 谢谢,我试试这个。但是我仍然想知道是否不可能使用批处理文件...
    • 这不能回答 OP 的问题。正确的解决方案在@mpod 下面的答案中。
    【解决方案2】:

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

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

    因此,试试这个

    schtasks /create /tn my_task_name 
                      ....
                     /st 10:00:00 
                     /ru "SYSTEM"
                     ....
    

    【讨论】:

      猜你喜欢
      • 2013-12-13
      • 2017-08-28
      • 2012-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-27
      • 1970-01-01
      • 2018-11-28
      相关资源
      最近更新 更多