for /f delims=以双引号作为分隔符+以斜杠/作为分隔符
参考:https://blog.****.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=,而该表达式中的所有符号都要转义。
脚本如下:
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
)