Luo Hao

windows——后台执行bat脚本

rehoni / 2020-06-29


Windows后台执行bat脚本

通过vb脚本来隐藏dos窗口,后台执行
@echo off 
if "%1" == "h" goto begin 
    mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit 
:begin 
::
redis-server.exe
建立脚本流程
  1. 调用运行bat,放入后台执行:main.vbs
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c A.bat",0
ws.run "cmd /c B.bat",0
ws.run "cmd /c C.bat",0
  1. 建立主脚本,循环执行:main.bat
@echo off<nul 3>nul
:one
echo %date:~0,10% %time:~0,-3% 守护进程正在监控系统...
start main.vbs
ping 127.0.0.1 -n 10>nul
goto one

通过ping命令来实现sleep 10秒的操作,每10秒执行main.vbs里边执行的3个脚本。

start命令

通过在bat脚本中,使用start命令来后台执行需要执行的脚本或者程序

start /b a.bat
参数 描述
/min | /max 指定最小化(/min)或最大化(/max)新的命令提示符窗口。
/elevate 以管理员身份运行应用程序。
/wait 启动应用程序并等待其结束。
/b 启动应用程序而不打开新的命令提示符窗口。 除非应用程序启用了 CTRL + C 处理,否则将忽略 CTRL + C 处理。 使用 CTRL + BREAK 中断应用程序。
/? 在命令提示符下显示帮助。

Windows开机自动执行bat脚本

编写bat脚本放置在以下位置

C:\Users\xxxx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

即可实现开机自动执行该脚本

执行Java脚本

编写脚本时,如果有多java环境,需要设定好执行的JAVA_HOME,即指定的jdk目录。

如果jdk目录包含空格,如Program Files这样的目录,可以用""进行转义;如果转义无用,则可以考虑使用绝对路径。

@echo off
C:
cd C:\Program Files\Java\jdk1.8.0_152\bin
start /b java -jar E:\nrec\ImpSftp\trans.jar -propath E:\nrec\ImpSftp\imp.properties

# E:\nrec\ImpSftp\jdk1.8.0_152\bin\java -jar E:\nrec\ImpSftp\trans.jar -propath E:\nrec\ImpSftp\imp.properties

参考

让bat批处理后台运行,不显示cmd窗口(完全静化)

Start语法