Windows findstr匹配特定数值

注册用户

我有一个xml文件,其值类似于以下内容:

  <Editable default="XXX07770004183" description="Station Id" name="MachineID.PSID" regex="^XXX[a-zA-Z0-9]{4}[0-9]{4}[a-zA-Z0-9]{3}$"/>

  <Editable default="17" description="Machine Number" name="MachineID.MachineID" regex="^[0-9]+$"/>

  <Editable default="32" description="Asset number" name="MachineID.AssetNumber" regex="^[0-9]+$"/>

  <Editable default="AAALLL74" description="Serial number" name="MachineID.SerialNumber" regex="^[a-zA-Z0-9]+$"/>

我想获取资产编号的值(在此示例中为32)并将其保存到变量中。资产编号的长度可以为5位数字。

这是带有findstr的Windows批处理。

findstr /C:MachineID.AssetNumber Static.Settings.xml,但这仅与整行匹配:

<Editable default="32" description="Asset number of the machine." name="MachineID.AssetNumber" regex="^[0-9]+$"/>

任何提示表示赞赏!

史蒂芬(Stephan)

使用for /f循环来“反汇编”一行:

for /f tokens^=2^ delims^=^" %%a in ('findstr /C:"MachineID.AssetNumber" Static.Settings.xml') do set asset=%%a
echo %asset%

"tokens=2 delims=""要正确处理引号,必须使用奇怪的语法代替

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章