在批处理脚本中从外部文件中的令牌中读取值

Read values from tokens in external file in batch script

我有以下文件,它定义了一个项目的版本号,我在很多地方都在使用它,比如 CMake 文件、python 脚本和其他配置。我唯一的困难是如何在 windows 的批处理文件中读取它?语法似乎有点奇怪,我现在不得不努力研究几个小时,但仍然无法理解。

Version.txt:

VERSION_MAJOR 09
VERSION_MINOR 02
VERSION_PATCH 21
VERSION_SUFFIX rc

我想做的是在我的 bat 脚本中使用上述变量的值,如下所示:

BatchScript.bat

VERSION_MAJOR = @VERSION_MARJO_FROM_FILE (e.g 09)
VERSION_MINOR = @VERSION_MARJO_FROM_FILE (e.g 02)

我找到了方法。

for /f "tokens=1* delims= " %%i in (version.txt) do (
  if %%i==VERSION_MAJOR call set version_major%%=%%j
  if %%i==VERSION_MINOR call set version_minor%%=%%j
  if %%i==VERSION_PATCH call set version_patch%%
  if %%i==VERSION_SUFFIX call set version_suffix%%
)