如何在批处理文件中获取程序的主要版本,次要版本号等?

时间:2017-08-26 11:31:47

标签: batch-file

程序在命令行上返回此正则表达式[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}的版本字符串。因此输出如下:

C:\users\user\desktop>a.exe --version
Version: 1.22.53.4134

我通过 get-version-info.bat

将输出保存到变量Version
for /f "usebackq tokens=1* delims=: " %%i in (`a.exe --version`) do (
    if /i "%%i"=="Version" set "Version=%%j"
)

要解决我的确切问题,我只需要主要次要版本号,但一般的,适应性强的解决方案当然也不错。

如何在批处理文件中获取程序的主要版本号和次要版本号?

2 个答案:

答案 0 :(得分:1)

将点添加到delims,扩展标记并使用所需元素复合Ver:

for /f "usebackq tokens=1-4* delims=:. " %%i in (`a.exe --version`) do (
  if /i "%%i"=="Version" set "VerMAjorMinor=%%j.%%k"
)

答案 1 :(得分:1)

您可以在批处理文件中使用此单个命令行:

for /F "tokens=1-3 delims=:. " %%I in ('a.exe --version') do if /I "%%I" == "Version" set "Version=%%J.%%K"

a.exe分割行输出的分隔符​​为冒号:,点.和空格 ,如delims=:. 所示。

感兴趣的只是tokens=1-3指定的前3个子串(标记)。第一个子字符串Version被分配给指定的循环变量I。根据{{​​3}} 1将第二个子字符串J分配给下一个循环变量。第三个子字符串为22,分配给循环变量K