qq_50520539 2024-12-03 19:39 采纳率: 0%
浏览 34

如何在Windows使用schtask 定时执行一个batch 不弹出窗口

在 Windows上 使用schtasks 设置一个执行 batch 脚本的定时任务 每次执行都会出现一个一闪而过的窗口 有碰到过同样问题的吗 求解

  • 写回答

1条回答 默认 最新

  • 关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    当使用 schtasks 在 Windows 上定时执行一个批处理文件(batch)时,确实可能会出现一个一闪而过的窗口。这是因为默认情况下,批处理文件在执行时会打开一个命令提示符窗口。如果你希望在执行批处理文件时不显示任何窗口,你可以尝试以下方法:

    方法 1:使用 start 命令的隐藏窗口选项

    在批处理文件中使用 start 命令可以隐藏窗口。你可以修改你的批处理文件(例如 yourscript.bat),在其中加入以下内容:

    @echo off
    start "" "yourscript.bat" /B
    exit
    

    这里的 /B 选项告诉 start 命令在启动应用程序后不要创建新窗口。这样,当你通过 schtasks 运行这个批处理文件时,就不会出现窗口。

    方法 2:修改 schtasks 的设置

    你也可以尝试修改 schtasks 的设置来避免弹出窗口。当你创建或修改任务时,可以设置“运行级别”(Run level)为“最高”(Highest)。这通常可以防止弹出窗口。你可以在创建或修改任务时使用以下命令:

    schtasks /create /tn YourTaskName /tr "yourscript.bat" /sc daily /st 09:00 /ru "SYSTEM" /rl Highest
    

    这里 /rl Highest 设置运行级别为最高。/ru "SYSTEM" 以系统帐户权限运行任务,这也有助于避免弹出窗口。请注意替换 "YourTaskName""yourscript.bat" 为你自己的任务名和批处理文件名。

    方法 3:使用 vbs 脚本来隐藏窗口

    你还可以创建一个简单的 VBScript 脚本,该脚本会运行你的批处理文件并隐藏命令提示符窗口。例如,创建一个名为 runbatchhidden.vbs 的文件,内容如下:

    Set objShell = CreateObject("Wscript.Shell") 
    objShell.Run "yourscript.bat", 0, True
    

    然后在你的 schtasks 任务中使用这个 VBScript 文件代替直接运行批处理文件。这样,当你运行任务时,VBScript 会运行批处理文件并且不会显示任何窗口。

    尝试上述方法之一,应该可以帮助你解决执行批处理文件时弹出窗口的问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 12月3日