for /f delims=以雙引號作為分隔符+以斜杠/作為分隔符


參考: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
)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM