2016-09-27 32 views
0

我有一個具有值類似於此的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]+$"/> 

任何提示的感謝!

回答

1

使用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=""時,只需要正確處理的報價。

+0

很完美!給我正是我需要的:32 –