如何只获取文本文件行中出现的数字

时间:2016-11-08 03:59:49

标签: windows batch-file

file.txt有一条就像这样的行......

{ "success" : { "id" : "18" } }

如何忽略所有这些,只获取数字(18)并将其存储在变量中以便我可以使用它?

注意,数字可能会改变,但不会总是18,可能是1到3位数。

我一直在玩,但似乎无法获得令牌,因为号码被引号包围

for /F "tokens=*" %%A in file.txt) do (

)

2 个答案:

答案 0 :(得分:0)

@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "filename1=%sourcedir%\q40478716.txt"
FOR /f "usebackqtokens=4delims=:{}" %%a IN ("%filename1%") DO SET /a var=%%~a
ECHO result=%var%
GOTO :EOF

您需要更改sourcedir的设置以适合您的具体情况。

我使用了一个名为q40478716.txt的文件,其中包含我的测试数据。

第4个令牌已分配给%%a,并且~

删除了引号

答案 1 :(得分:-2)

import re
number = re.findall(r'\d+', 'target_str')[0]