【问题标题】:How can I prevent a cmd.exe window from showing when a .bat script is run via Task Scheduler?当通过任务计划程序运行 .bat 脚本时,如何防止 cmd.exe 窗口显示?
【发布时间】:2014-10-15 01:06:17
【问题描述】:

我有一个.bat 脚本,计划通过 Windows Server 2008 上的 Windows 任务计划程序每 5 分钟运行一次。

.bat 脚本:

C:\Windows\SysWOW64\cscript.exe C:\scriptord.vbs //Nologo A > \\192.168.100.1\accounts\scriptord
C:\Windows\SysWOW64\cscript.exe C:\scriptord.vbs //Nologo B > \\192.168.100.2\accounts\scriptord
C:\Windows\SysWOW64\cscript.exe C:\scriptord.vbs //Nologo C > \\192.168.100.3\accounts\scriptord

问题

问题是每 5 分钟我就会在屏幕上看到一个黑白的cmd.exe 窗口,该窗口在脚本运行时会停留大约 2 分钟。

如何防止在任务计划程序运行时打开此窗口?

【问题讨论】:

    标签: windows batch-file windows-server


    【解决方案1】:

    使用NT AUTHORITY\SYSTEM 作为用户,除非您的脚本需要只有您的用户才能访问的资源(例如远程共享)

    【讨论】:

      【解决方案2】:

      最简单的解决方案通常是在不同的用户帐户下运行任务。

      【讨论】:

      • 感谢您的回答。我应该使用什么用户帐户?我在服务器上使用管理员,这是我们使用的唯一帐户。是否有一些系统用户可以设置,然后该用户是否需要登录才能运行?
      【解决方案3】:

      您可以使用 VBS 调用批处理脚本。下面的代码将隐藏控制台

      Set objShell = WScript.CreateObject("WScript.Shell")
      objShell.Run("Batchfile.bat"), 0, True
      

      所以通过 windows 任务调度程序而不是批处理运行此脚本,控制台将不再出现。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-06-24
        • 2018-03-30
        • 2017-06-07
        • 1970-01-01
        • 1970-01-01
        • 2017-06-20
        • 2018-02-16
        相关资源
        最近更新 更多