跳至主要內容

bat处理程序的自更新及启动

知识库编程技巧WindowsWindows大约 1 分钟

1、执行bat脚本启动应用

执行exe执行文件, 当执行出错的时候程序会自动关闭启动窗口,无法看到报错信息

编写bat脚本, 实现: 执行出错不关闭执行窗口

@echo off
cd /d %~dp0

set %BIN_FILE%=register.exe
start "" /B /WAIT %BIN_FILE%

pause
  • pause: 程序退出后命令行窗口不退出。
  • /B: 后台运行,不阻塞当前命令行窗口,即以静默的方式启动应用程序,并且不会开启新的命令行窗口。
  • /WAIT: 表示等待启动的程序退出后才继续执行后续的命令。

2、脚本实现程序自更新

bat脚本实现: 检查程序是否有新版本, 有新版本自动升级后启动程序

@echo off
cd /d %~dp0

set BIN_URL=https://www.deanhan.cn/xxx/register.exe
set VERSION_URL=https://www.deanhan.cn/demo/xxx/version.txt
set VERSION_FILE=version.txt
set TMPFILE=tmp.txt
set BIN_FILE=register.exe

"./bin/wget" --no-check-certificate -q -O %TMPFILE% %VERSION_URL%

set /p LASEST_VERSION=<%TMPFILE%
set /p VERSION=<%VERSION_FILE%
del /q %TMPFILE%

if %VERSION% NEQ %LASEST_VERSION% (
  echo updating software, waiting...
  "./bin/wget" --progress=bar:force --no-check-certificate -O %BIN_FILE% %BIN_URL%  echo %LASEST_VERSION% > %VERSION_FILE%
)
start "" /B /WAIT %BIN_FILE%

pause

3、F&Q

可能会遇到一些其他的问题,

比如运行bat脚本并打开控制台后,发现控制台没办法关闭,这个时候我们杀死所有脚本开启的应用进程,比如:taskkill /F /IM register.exe