2017-02-01 23 views
0

我需要使用批處理腳本提取su11b_.agm之間的數字。 在下面的示例中,結果應爲733批處理:從字符串「x123y」獲取x和y之間的數字

  • su11b_始終是相同的,這裏的數字將不會改變
  • 733可以改變,從1 - 永恆(因此將有一個可變長度)

這裏是我試過(它不會在所有的工作):

set "str=d:\agrcc\agrtest\server logging\su11b_733.agm" 
set /A "number=str" 

我想也許是一個正則表達式啄可以提取su11b_和之間的數字但我不知道如何在批處理腳本中執行此操作?

回答

2

如果您確定數字始終在su11b_.agm之間,您實際上不需要正則表達式。您可以su11b_之前剛剛刪除一切,然後再刪除.agm部分:

set "var=d:\agrcc\agrtest\server logging\su11b_733.agm" 
set number=%var:*su11b_=% 
set number=%number:.agm=% 
echo %number% 

This link有大約批量

+0

尼斯變量替換子一些更多的信息!你能解釋一下這些語法的作用嗎? '%var:* su11b _ =%'和'%number:.agm =%' 我真的需要學習這個東西... – dadde

+1

這是字符串替換。它基本上說'%varname:(替換)stringToReplace =(替換)stringToReplaceWith%'。這也包括te通配符「*」。因此,您首先會替換數字前面的所有內容,然後刪除文件擴展名。 – geisterfurz007

+1

@ J.Baoby恭喜1k標誌:) – geisterfurz007

相關問題