在批处理脚本中从外部文件中的令牌中读取值
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%%
)
我有以下文件,它定义了一个项目的版本号,我在很多地方都在使用它,比如 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%%
)