windows findstr 匹配特定数字

windows findstr match specific numeric

我有一个 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位数字。

这是 Windows 使用 findstr 的批处理。

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

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

如有任何提示,我们将不胜感激!

使用 for /f 循环到 "disassemble" 一行:

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

奇怪的语法而不是 "tokens=2 delims="" 是正确处理报价所必需的。