參考:https://blog.csdn.net/weixin_43515150/article/details/98735861
背景:我要獲取文件中的版本號來定義我的exe的名字
文件pc.h內容如下:
// 業務層版本信息
#define VERSION_MAIN "4.05.06"
// 組件層版本信息
#define SCREEN_CAPTURE "3.01.02"
#define ENC_HW "3.01.02"
我要獲取 #define VERSION_MAIN "4.05.06"中的4.05.06,在delims=后連續寫上你的分隔符,空格必須放最后,分隔符有雙引號的話,表達式"delims=tokens="就得去掉前后的雙引號
寫成delims= tokens=,而該表達式中的所有符號都要轉義。
腳本如下:
more pc.h | findstr "VERSION_MAIN" >my_version
more my_version
for /f tokens^=2^ delims^=^" %%m in ( my_version ) do ( set my_v=%%m) 表示以雙引號划分,取第二列
echo version=!my_v!
另外:
以斜杠作為分隔符,將斜杠轉義就可以了,如下:(取文件中斜杠分隔符的第一列)
for /f "tokens=1 delims=^/" %%x in (old_path) do ( set old_head=%%x)
for /f "tokens=1 delims=^/" %%y in (new_path) do ( set new_head=%%y)
echo =====old_head=!old_head!,new_head=!new_head!===========
if not "!old_head!" == "!new_head!" (
echo old_head=!old_head! is not equal new_head=!new_head!
exit 1
)