2016-10-12 17 views
0

XMLファイルを解析しようとしていますが、「DEV2_BUSINESSAPPS_URL」というバッチファイルに1つのパラメータを渡す必要があります。「https://energy.epipelines.com/businessapps/welcome.html」が返されます。残念ながら、バッチファイルでなければなりません。ここでバッチファイルからXMLファイルを解析する

は私のXMLファイルである:ここで

<Environment> 
      <Variable> 
        <Name>DEV1_BUSINESSAPPS_URL</Name> 
        <Value><![CDATA[https://energy.epipelines.com/businessapps/welcome.html]]></Value> 
      </Variable> 
      <Variable> 
        <Name>DEV2_BUSINESSAPPS_URL</Name> 
        <Value><![CDATA[https://energy.epipelines.com/businessapps/welcome.html]]></Value> 
      </Variable> 
      <Variable> 
        <Name>DEV3_BUSINESSAPPS_URL</Name> 
        <Value><![CDATA[https://energy.epipelines.com/businessapps/welcome.html]]></Value> 
      </Variable> 
      <Variable> 
        <Name>QA1_BUSINESSAPPS_URL</Name> 
        <Value><![CDATA[https://qa1comapps.elm.com/businessapps]]></Value> 
      </Variable> 
</Environment> 
+1

は、バッチには楽しいではありません。サードパーティのexeファイルを使用するか、Batchを使用してスクリプトホストまたはPowerShellで一時スクリプトを作成して実行できますか?それとも100%一括実装でなければならないのでしょうか? – soja

+1

VBscript、Jscript、またはpowershellを使用する方が、XMLをネイティブに解析するオブジェクトを持つ方がよいでしょう。 – Squashman

+0

これまでに何を試しましたか?あなたはどこにいるのですか? StackOverflowは無料のコード作成サービスではないことをご了承ください! [ツアーページ](http://stackoverflow.com/tour)全体とヘルプトピック[どのように私は良い質問をしますか?](http://stackoverflow.com/help/how-to-ask)を読んでください。 – aschipfl

答えて

0

は、私はそれを行うだろうかです。 XMLのように異なるマークアップファイルのレイアウトの違いをBatchに理解させるのは簡単ではないので、かなり脆いです。しかし、ファイルが指定した形式である限り、これはうまくいくはずです。

@echo off 

for /f "tokens=1,2,3 delims=^<^>![] " %%a in (file.xml) do (
    if defined nextline echo %%c&set nextline= 
    if "%%a"=="Name" if "%%b"=="%~1" set nextline=1 
) 

test.cmd DEV2_BUSINESSAPPS_URLの出力:明らかに https://energy.epipelines.com/businessapps/welcome.html

、それに応じてファイル名を変更します。

+0

ありがとうsoja、私はこれで数時間の作業をしています。 – Jeff

0

ここでは、外部バイナリを使用せずに、XPath式でXML値を取得できるようになりますxpath.bat - 小スクリプトです:(特に角括弧付き)マークアップを使用した作業

call xpath.bat "environment.xml" "//Variable[Name = 'DEV1_BUSINESSAPPS_URL']/Value" 
関連する問題