0

XMLファイルがあります。私が望むのは、バッチ ファイルを使用してこの XML ファイルから特定のタグ値を読み取り、この値を他の値と比較することだけです。

私のXMLファイルは次のとおりです。

<cruisecontrol project="AAA">
<sourcemonitor_metrics>
  <project version="3.3">

    <metric_names name_count="15">
      <metric_name id="M0" type="number">Lines</metric_name>
      <metric_name id="M1" type="number">Statements</metric_name>
      .
      .
      . 

      <metric_name id="M13" type="average" values="block_depths">Average Block Depth</metric_name>
      <metric_name id="M14" type="average">Average Complexity</metric_name>
    </metric_names>
    <checkpoints checkpoint_count="1">
      <checkpoint checkpoint_name="NewcheckPoint" ignore_blank_lines="false">
        <metrics metric_count="15">
          <metric id="M0">34126</metric>
          <metric id="M1">15278</metric>
          .
          .
          .
          <metric id="M13">2.48</metric>
          <metric id="M14">3.34</metric>   <!-- Want to read this value in batch -->
        </metrics>

## 終了タグは無視してください。

値を読みたい <metric id="M14">
私はバッチスクリプトを初めて使用します。どうすればこれを行うことができますか?

4

1 に答える 1

1

まず、この簡単なコマンドを読んHELP FINDSTRで試してください

 findstr /r /c:"\<metric id=\"M14\"\>[0-9,.]*</metric\>" my.xml

xml ファイル内の正規表現を検索し"\<metric id=\"M14\"\>[0-9,.]*</metric\>"、一致する行を返します。

次に、このコマンドを読んHELP FORで試してください

 for /f "delims=^<^> tokens=3" %a in ('findstr /r /c:"\<metric id=\"M14\"\>[0-9,.]*</metric\>" my.xml') do @echo %a

<and>を区切り文字として使用して、前のコマンドから返された行を解析し、必要な値である 3 番目のパラメーターを返します。

于 2013-01-28T12:58:20.090 に答える