You need to enable JavaScript to run this app. Batch字符串操作:如何提取AssemblyInfo版本号的前3个分段
优惠活动
大模型
产品
解决方案
定价
更多

Batch字符串操作:如何提取AssemblyInfo版本号的前3个分段

批处理脚本修改方案

原脚本已经可以从AssemblyInfo.cs中正确提取完整四段式版本号(例如1.1.0.0),只需在拿到完整版本值后追加截断处理逻辑即可,完全无需改动原本查找匹配的核心规则。

核心修改内容

  • 补全原脚本的隐藏缺陷:原脚本未开启延迟环境变量扩展,在for循环块内给变量赋值时,默认配置下循环内的变量值不会即时生效,会出现最终echo输出为空的问题,需要在脚本开头添加setlocal enabledelayedexpansion。
  • 新增版本截断逻辑:对提取到的完整版本号,以.为分隔符拆分字符串,取前3个分段重新拼接为三段式版本号。

修改后可直接运行的完整脚本

@echo off
setlocal enabledelayedexpansion
REM extract version from assembly ignoring commented out version
FOR /F delims^=^"^ tokens^=1,2^* %%A IN ('findstr /L /B /C:"[assembly: AssemblyVersion" "AssemblyInfo.cs"') DO (
   set "full_version=%%B"
   REM 按点拆分,仅保留前3个版本分段
   for /f "tokens=1-3 delims=." %%a in ("!full_version!") do (
       set "version=%%a.%%b.%%c"
   )
)
echo 处理后的三段式版本号: !version!
endlocal

逻辑适配说明

  • 完全保留原脚本的版本提取规则:依然严格匹配行开头的[assembly: AssemblyVersion特征,自动跳过被注释的版本行,和原脚本的提取精度完全一致。
  • 截断逻辑无边界兼容问题:哪怕原文件中的版本号本身不足4段,该处理逻辑也不会报错,只要是点分隔的标准版本格式,都能正确取到前3段。
  • 脚本结尾添加endlocal收尾,避免局部环境变量污染全局系统配置。

内容的提问来源于stack exchange,提问作者Wartino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.04 04:45:03