如何在不打开新命令行窗口的情况下使用“schtasks”执行计划任务?
Posted
技术标签:
【中文标题】如何在不打开新命令行窗口的情况下使用“schtasks”执行计划任务?【英文标题】:How to execute a scheduled task with "schtasks" without opening a new command line window? 【发布时间】: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
,这又会导致新窗口打开。
我该如何解决这个问题?
【问题讨论】:
【参考方案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"
....
【讨论】:
以上是关于如何在不打开新命令行窗口的情况下使用“schtasks”执行计划任务?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用 tkinter 打开控制台窗口的情况下运行 Python 脚本?
在不打开新窗口/标签的情况下使用 Google 身份验证登录