一、需求背景
在windowns server服务器添加了bat脚本结合定时任务进行启动,发现启动时会弹出cmd窗口,影响正常操作。
二、解决方法
1、在bat文件开头加上@echo off,抑制命令行输出。
2、在创建计划任务时,把"运行是否用户已登录"选项设置为"与是否登录无关",使其在后台运行。
3、把计划任务的安全选项设置为"最高权限",避免权限不足的错误。
4、在bat文件的末尾添加exit /b 0,防止脚本执行完后命令窗口等待用户输入。
5、如果调用其他程序,在程序路径加上参数 -w 隐藏窗口。
6、对于PowerShell脚本,用-WindowStyle Hidden选项隐藏窗口。
7、使用nssm等工具代替计划任务,可以隐藏窗口。
8、通过WMI在后台启动进程,不显示窗口。
9、使用vbs脚本作为启动程序,在vbs中调用bat,可以隐藏窗口。
二、解决方法
此处采用编写vbs调用bat脚本的方式处理此问题。
Set shell = Wscript.Createobject("wscript.shell")
Call shell.run("C:RDPRDPLog.bat", 0)
将vbs添加到计划任务中,该问题就得以解决。