Tom*_*ham 158 scripting windows command-line-interface scheduled-task windows-command-prompt
我有一个计划任务,它启动一个robocopy每小时运行一次的批处理脚本。每次它运行时,桌面上都会弹出一个带有 robocopy 输出的窗口,我真的不想看到。
我设法通过运行预定的作业来使窗口最小化
cmd /c start /min mybat.bat
Run Code Online (Sandbox Code Playgroud)
但这每小时给我一个新的命令窗口。鉴于cmd /c“执行字符串指定的命令然后终止” ,我对此感到惊讶- 我一定误解了文档。
有没有办法在不弹出 cmd 窗口的情况下运行批处理脚本?
spl*_*tne 156
您可以改为使用 Windows 脚本文件静默运行它。Run 方法允许您在不可见模式下运行脚本。创建一个.vbs这样的文件
Dim WinScriptHost
Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "C:\Scheduled Jobs\mybat.bat" & Chr(34), 0
Set WinScriptHost = Nothing
Run Code Online (Sandbox Code Playgroud)
并安排它。本示例中的第二个参数设置窗口样式。0 表示“隐藏窗口”。
Run 方法的完整语法:
object.Run(strCommand, [intWindowStyle], [bWaitOnReturn])
Run Code Online (Sandbox Code Playgroud)
参数:
Joh*_*nie 63
您是否将此作为计划任务运行?如果是这样,将其设置为以不同的用户帐户运行,则登录用户将看不到它。如果脚本不需要对需要 Windows 身份验证的项目(如文件共享或打印机)进行网络访问,您可以将其作为“nt authority\system”运行,并将密码留空。在 Windows 7 上,只需将用户设置为 SYSTEM,然后按 OK。
(如果您使用 robocopy,您可能必须使用真实用户...)
JR
小智 38
只需将计划任务配置为“无论用户是否登录都运行”。
小智 19
您也可以尝试CHP(创建隐藏进程),完全按照您的想法执行...
CHP.EXE mybat.bat
在没有命令窗口的情况下运行。完美的!由与 CMDOW 相同的人制作,但这更合适。
its*_*dok 10
CMDOW是一个很棒的工具,它允许您从命令行对 Windows 执行很多很多事情。
最简单的事情之一是隐藏当前窗口(通常作为 bat 文件中的第一行):
cmdow @ /hid
Run Code Online (Sandbox Code Playgroud)
或开始一个新的隐藏进程
cmdow /run /hid mybat.bat
Run Code Online (Sandbox Code Playgroud)
小智 6
您可以创建批处理文件的快捷方式,将快捷方式设置为最小化启动(在快捷方式的属性中,“快捷方式”选项卡中),然后将作业设置为启动快捷方式。
重要提示:您需要手动指定快捷方式的路径,方法是在“运行”文本字段中输入快捷方式,并加上“.lnk”扩展名;如果您只是尝试浏览它,它将有助于将自己重定向到快捷方式指向的任何内容。
小智 5
尝试调用脚本
start /b <command>
Run Code Online (Sandbox Code Playgroud)