WIN中SCHTASKS用法(定时执行程序)

SCHTASKS /parameter [arguments]

描述:
    允许管理员创建、删除、查询、更改、运行和中止本地或远程系统上的计划任
    务。替代 AT.exe。

参数列表:
    /Create         创建新计划任务。
    /Delete         删除计划任务。
    /Query          显示所有计划任务。
    /Change         更改计划任务属性。
    /Run            立即运行计划任务。
    /End            中止当前正在运行的计划任务。
    /?              显示帮助消息。

示例:
    SCHTASKS
    SCHTASKS /?
    SCHTASKS /Run /?
    SCHTASKS /End /?
    SCHTASKS /Create /?
    SCHTASKS /Delete /?
    SCHTASKS /Query  /?
    SCHTASKS /Change /?

SCHTASKS /Create [/S system [/U username [/P [password]]]]
    [/RU username [/RP password]] /SC schedule [/MO modifier] [/D day]
    [/M months] [/I idletime] /TN taskname /TR taskrun [/ST starttime]
    [/RI interval] [ {/ET endtime | /DU duration} [/K] ]  
    [/SD startdate] [/ED enddate] [/IT] [/Z] [/F]
    
/MO   modifier     改进计划类型以允许更好地控制计划重复
                   周期。有效值列于下面“修改者”部分中。
/D    days         指定该周内运行任务的日期。有效值: 
                   MON、TUE、WED、THU、FRI、SAT、SUN
                   和对 MONTHLY 计划的 1 - 31
                   (某月中的日期)。通配符“*”指定所有日期。
/M    months       指定一年内的某月。默认是该月的第一天。
                   有效值: JAN、FEB、MAR、APR、MAY、JUN、
                   JUL、 AUG、SEP、OCT、NOV  和 DEC。通配符
                   “*” 指定所有的月。
/I    idletime     指定运行一个已计划的 ONIDLE 任务之前
                   要等待的空闲时间。
                   有效值范围: 1 到 999 分钟。
/TN   taskname     指定唯一识别这个计划任务的名称。
/TR   taskrun      指定在这个计划时间运行的程序的路径
                   和文件名。 例如: C:\windows\system32\calc.exe
/ST   starttime    指定运行任务的开始时间。
                   时间格式为 HH:mm (24 小时时间),例如 14:30 表示
                   2:30 PM。如果未指定 /ST,则默认值为
                   当前时间。/SC ONCE 必需有此选项。
/RI   interval     用分钟指定重复间隔。这不适用于
                   计划类型: MINUTE、HOURLY、
                   ONSTART, ONLOGON, ONIDLE, ONEVENT.
                   有效范围: 1 - 599940 分钟。
                   如果已指定 /ET 或 /DU,则其默认值为
                   10 分钟。
/ET   endtime      指定运行任务的结束时间。
                   时间格式为 HH:mm (24 小时时间),例如,14:50 表示 2:50 PM。
                   这不适用于计划类型: ONSTART、
                   ONLOGON, ONIDLE, ONEVENT.
/DU   duration     指定运行任务的持续时间。
                   时间格式为 HH:mm。这不适用于 /ET 和
                   计划类型: ONSTART, ONLOGON, ONIDLE, ONEVENT.
                   对于 /V1 任务,如果已指定 /RI,则持续时间默认值为
                   1 小时。
/K                 在结束时间或持续时间终止任务。
                   这不适用于计划类型: ONSTART、
                   ONLOGON, ONIDLE, ONEVENT. 
                   必须指定 /ET 或 /DU。
/SD   startdate    指定运行任务的第一个日期。
                   格式为 yyyy/mm/dd。默认值为
                   当前日期。这不适用于计划类型: ONCE、
                   ONSTART, ONLOGON, ONIDLE, ONEVENT.

/ED   enddate      指定此任务运行的最后一天的日期。
                   格式是 yyyy/mm/dd。这不适用于计划类型: 
                    ONCE、ONSTART、ONLOGON、ONIDLE。
/EC   ChannelName  为 OnEvent 触发器指定事件通道。

/IT                仅有在 /RU 用户当前已登录且
                   作业正在运行时才可以交互式运行任务。
                   此任务只有在用户已登录的情况下才运行。

/NP                不储存任何密码。任务以给定用户的身份
                   非交互的方式运行。只有本地资源可用。

/Z                 标记在最终运行完任务后删除任务。

/XML  xmlfile      从文件的指定任务 XML 中创建任务。
                   可以组合使用 /RU 和 /RP 开关,或者在任务 XML 已包含
                   主体时单独使用 /RP。

/V1                创建 Vista 以前的平台可以看见的任务。
                   不兼容 /XML。

/F                 如果指定的任务已经存在,则强制创建
                   任务并抑制警告。

/RL   level        为作业设置运行级别。有效值为
                   LIMITED 和 HIGHEST。默认值为 LIMITED。

/DELAY delaytime   指定触发触发器后延迟任务运行的
                   等待时间。时间格式为
                   mmmm:ss。此选项仅对计划类型
                   ONSTART, ONLOGON, ONEVENT.

例子说明:
/F 确认
/mo参数来指定间隔时间,忽略了/mo参数,命令使用了小时计划的默认值,即每 (1) 小时。
/sd参数来指定起始日期。由于命令没有指定起始时间,当前时间被用作起始时间

1、每分钟执行1次

BAT运行:
schtasks /create /sc minute /mo 01 /tn  " & "test" & " /tr  %~dp0\log.log

VBA运行:
Shell "schtasks /create /sc minute /mo 01 /tn  " & "test" & " /tr  " & ThisWorkbook.Path & "\log.log /F"
OR Shell "schtasks /create /sc minute /mo 01 /tn  test  /tr  " & ThisWorkbook.Path & "\log.log /F"

2、在每小时20分后运行
schtasks /create /sc hourly /st 00:20:00 /tn "TEST" /tr 

3、每天8点运行
chtasks /create /tn "TEST" /tr  %~dp0\log.log /sc daily /st 08:00:00 

4、停止或删除任务
"schtasks /delete /TN TEST /F"

<think>好的,用户想要定时执行一个bat脚本,而且不能弹出窗口。我需要分步骤思考如何解决这个问题。首先,用户的需求很明确,定时执行bat文件并且不显示命令行窗口。 首先,我应该考虑Windows系统自带的工具。常用的定时任务工具是任务计划程序,这个应该可以满足定时执行的需求。不过用户提到不能弹出窗口,所以需要确保执行bat时没有窗口弹出。通常运行bat文件会有一个命令行窗口一闪而过,所以需要想办法隐藏这个窗口。 接下来,如何隐藏bat脚本的窗口呢?可能的办法有两种:一种是修改bat脚本本身,让它后台运行;另一种是在调用bat的时候使用其他方法隐藏窗口。比如使用VBScript或者PowerShell脚本来启动bat文件,这样可能隐藏窗口。不过用户可能希望尽量少用额外文件,所以可能需要更简洁的方法。 另外,任务计划程序本身有没有选项可以隐藏窗口呢?我记得在创建任务的时候,有一个选项是“运行任务时隐藏”或者类似的设置,可能需要检查一下。不过根据我的知识,任务计划程序在运行时,默认可能会显示窗口,除非特别配置。 再想想,还有一种方法是将bat文件转换为exe文件,并在转换时设置不显示窗口。不过这可能涉及到第三方工具,用户可能不愿意安装额外软件。 回到任务计划程序,正确配置的话应该可以解决问题。让我详细回忆一下步骤:创建基本任务,设置触发器,选择启动程序,然后浏览到bat文件。关键是在任务属性的“常规”选项卡中,选择“不管用户是否登录都要运行”,并且勾选“不存储密码”和“隐藏”选项。这样应该可以让任务在后台运行,不显示窗口。 另外,用户可能需要以SYSTEM账户或后台服务的方式运行任务,这样可以避免用户界面交互。不过如果用户没有管理员权限,可能需要调整权限设置。 还有一种可能性是使用schtasks命令来创建计划任务,通过命令行参数设置隐藏窗口。比如使用schtasks /create命令,并设置适当的参数,可能包括/RUNLEVEL参数为最高权限,这样可能隐藏窗口。需要查阅具体参数。 或者,修改bat文件,在开头添加一行使用cmd.exe的启动参数,比如@echo off,但这只能关闭回显,并不能隐藏窗口。真正隐藏窗口可能需要其他方法,比如使用start /b,但这可能也不够。 或者,使用VBScript来调用bat文件,比如创建一个vbs文件,内容如下: Set WshShell = CreateObject("WScript.Shell") WshShell.Run "cmd /c C:\path\to\script.bat", 0, True Set WshShell = Nothing 然后将这个vbs文件设置为计划任务,这样执行时就不会弹出窗口。这可能是一个有效的方法,但需要用户创建额外的vbs文件。 不过用户可能更倾向于使用系统自带的功能,所以回到任务计划程序,正确配置任务属性是否足够。需要确认在任务计划程序中,设置“不管用户是否登录都要运行”并勾选“不显示窗口”是否有效。可能需要实际操作验证一下。 另外,当用户选择“不管用户是否登录都要运行”时,系统会提示输入密码,但如果没有密码的话可能无法使用此选项,或者用户账户需要有密码。需要注意这一点,否则任务可能无法正确运行。 总结可能的解决方案: 1. 使用任务计划程序,正确配置任务属性以隐藏窗口。 2. 使用VBScript或PowerShell脚本启动bat文件,并通过计划任务调用该脚本。 3. 使用第三方工具将bat转换为exe并设置无窗口运行,再定时执行exe。 优先推荐系统自带的任务计划程序方法,因为不需要额外工具,但需要确保配置正确。如果任务计划程序无法隐藏窗口,可能需要结合VBScript方法。 现在需要详细写出步骤,确保用户能够按照指导操作,同时解释每个步骤的作用,避免出现问题。比如,在任务计划程序中,触发器设置、操作选择启动程序,可能需要指定bat文件的路径,并且在常规选项中设置隐藏等。 还要提醒用户注意bat脚本本身的执行环境,比如路径问题,可能需要使用绝对路径,或者在脚本中切换目录。此外,测试任务是否正常运行,可以手动运行任务计划中的任务,查看效果。 最后,可能存在的常见问题包括:任务计划程序没有权限,bat文件路径错误,或者隐藏窗口的选项未正确配置。需要提醒用户检查这些点。</think>在Windows系统中定时执行`.bat`脚本且不弹出窗口,可通过以下两种方法实现: --- ### 方法1:使用任务计划程序(推荐) **步骤说明:** 1. **打开任务计划程序** - 按 `Win + R`,输入 `taskschd.msc` 后回车。 2. **创建基本任务** - 右侧点击 **“创建基本任务”**,输入名称(如“定时执行BAT”)和描述。 3. **设置触发器** - 选择触发频率(每日/每周/启动时等),并指定具体时间。 4. **选择操作** - 操作类型选 **“启动程序”**,在“程序或脚本”中填写: ```plaintext cmd.exe ``` - 在“添加参数”中填写: ```plaintext /c "C:\path\to\your\script.bat" ``` 替换路径为你的BAT文件实际路径。 5. **关键配置(隐藏窗口)** - 完成向导后,右键任务选择 **“属性”**。 - 在 **“常规”** 选项卡: - 勾选 **“不管用户是否登录都要运行”**。 - 勾选 **“不存储密码”** 和 **“隐藏”**(部分系统显示为“运行时不显示窗口”)。 - 在 **“条件”** 选项卡: - 取消勾选 **“只有在计算机使用交流电源时才启动此任务”**(避免因电源模式导致任务不执行)。 6. **测试任务** - 右键任务选择 **“运行”**,验证脚本是否执行且无窗口弹出。 --- ### 方法2:通过VBScript调用(无需任务计划程序) 若需更彻底隐藏窗口,可创建VBScript脚本: 1. **新建文件 `run_bat.vbs`** 内容如下: ```vbscript Set WshShell = CreateObject("WScript.Shell") WshShell.Run "cmd /c C:\path\to\script.bat", 0, True Set WshShell = Nothing ``` 替换路径为你的BAT文件实际路径。 2. **设置计划任务** - 在任务计划程序中,将操作设置为启动 `wscript.exe`,参数填写: ```plaintext "C:\path\to\run_bat.vbs" ``` --- ### 注意事项 1. **路径问题** - BAT脚本和VBScript中均需使用**绝对路径**,避免因相对路径导致执行失败。 2. **权限问题** - 若任务计划程序提示权限不足,需以管理员身份运行任务计划程序或调整任务的安全选项。 3. **日志调试** - 可在BAT脚本末尾添加 `> log.txt 2>&1` 重定向输出,便于排查错误: ```bat @echo off your_commands_here exit > log.txt 2>&1 ``` --- ### 总结 推荐优先使用 **任务计划程序**,通过配置隐藏选项实现无窗口运行。若仍需进一步隐藏进程,可结合VBScript调用。两种方法均无需第三方工具,安全可靠。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_44390640

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值