- 精华
- 阅读权限
- 120
- 好友
- 相册
- 分享
- 听众
- 收听
- 注册时间
- 2022-7-23
- 在线时间
- 小时
- 最后登录
- 1970-1-1
|
发表于 2025-3-30 18:30:50
|
显示全部楼层
本帖最后由 i85201314 于 2025-3-30 18:45 编辑
看能不能用bat批处理来解决,写判断,这样就可以避免每次更新,具体使用deepseek,应为我对批处理一点也不熟。
deepseek写的
提示词:
写一个批处理脚本,比对远程文件的版本号和本地的版本号,这个版本号是保存在一个txt文本里,若如本地版本号小于远程版本号的文件就开启更新程序gengxing.exe更新完以后结束gengxing.exe启动客户端程序KEHUDUAN.exe
- <span class="token" style="color: rgb(64, 120, 242);">@</span><span class="token command" style="color: rgb(166, 38, 164);">echo</span><span class="token command"> off</span>
- setlocal enabledelayedexpansion
- :: 配置文件路径
- set "remote_file=\\192.168.1.100\version.txt" :: 远程版本文件地址[8](@ref)
- set "local_file=C:\App\version.txt" :: 本地版本文件路径
- set "update_exe=C:\App\gengxing.exe" :: 更新程序路径
- set "client_exe=C:\App\KEHUDUAN.exe" :: 客户端程序路径
- :: 提取版本号函数
- :GetVersion
- set "version="
- for /f "usebackq tokens=*" %%i in ("%1") do (
- set "line=%%i"
- :: 匹配类似"ver. 1.2.3"的版本格式[1,6](@ref)
- for /f "tokens=3 delims=. " %%v in ("!line!") do set "version=%%v"
- )
- exit /b
- :: 主逻辑
- call :GetVersion "%remote_file%" && set "remote_ver=!version!"
- call :GetVersion "%local_file%" && set "local_ver=!version!"
- if "%remote_ver%"=="" (
- echo 远程版本号获取失败
- pause
- exit /b
- )
- if "%local_ver%"=="" (
- echo 本地版本号获取失败
- pause
- exit /b
- )
- :: 分割版本号为数字段[5](@ref)
- for /f "tokens=1-3 delims=." %%a in ("%remote_ver%") do (
- set "r_major=%%a" & set "r_minor=%%b" & set "r_patch=%%c"
- )
- for /f "tokens=1-3 delims=." %%a in ("%local_ver%") do (
- set "l_major=%%a" & set "l_minor=%%b" & set "l_patch=%%c"
- )
- :: 版本比较逻辑[1,5](@ref)
- set "need_update=0"
- if !r_major! gtr !l_major! (set need_update=1)
- if !r_major! equ !l_major! (
- if !r_minor! gtr !l_minor! (set need_update=1)
- if !r_minor! equ !l_minor! (
- if !r_patch! gtr !l_patch! (set need_update=1)
- )
- )
- if %need_update% equ 1 (
- echo 发现新版本 !remote_ver!,开始更新...
- start "" "%update_exe%" :: 启动更新程序[11](@ref)
-
- :: 等待更新完成
- :wait_update
- tasklist | find /i "gengxing.exe" >nul
- if !errorlevel! equ 0 (
- timeout /t 5 >nul
- goto wait_update
- )
-
- echo 更新完成,启动客户端...
- start "" "%client_exe%" :: 启动客户端[11](@ref)
- ) else (
- echo 当前已是最新版本 !local_ver!
- )
- endlocal
复制代码
|
评分
-
查看全部评分
|