繁体   English   中英

使用Windows Batch读取JAR文件中的XML文件

[英]Read XML file inside JAR file using Windows Batch

我有一个XML文件TData.xml,它已存储在2个不同的位置。我想通过读取该文件的每个副本中的构建标签来查看其版本是否相同。 我能够读取存储在第一位置的副本,但无法读取存储在第二位置的副本,因为它已与另一个名为data.xml的xml文件一起存储在可执行JAR文件中。

我使用的批处理代码

 @echo off
 fc D:\lucy\MasterData\TData.xml W:\MasterDataGDDFolders\Trellis_3.3_Higher\MasterData.jar\TData.xml /A > nul

if errorlevel 1 (
    echo.
    echo in SVN
    findstr "<Build>" D:\lucy\MasterData\TData.xml
    echo.
    echo  in DropBox
    findstr "<Build>" W:\MasterDataGDDFolders\Trellis_3.3_Higher\MasterData.jar\TData.xml
    echo.
    echo.
    echo TData files are different.
) else (
    echo.
    echo in SVN
    findstr "<Build>" D:\lucy\MasterData\TData.xml
    echo.
    echo  in DropBox
    findstr "<Build>" W:\MasterDataGDDFolders\Trellis_3.3_Higher\MasterData.jar\TData.xml
    echo.
    echo.
    echo TData files matches.

)

MasterData.jar的内容是TData.xml和Data.xml

TData.xml的XML代码

    <?xml version="1.0" encoding="UTF-8"?>
   <CDMDataVersion>
    <Major>3</Major>
    <Minor>0</Minor>
    <Build>19</Build>
    <Delimiter>.</Delimiter>
   </CDMDataVersion>

在jar文件中的2个xml文件中,我只想读取TData.xml。 您能否告诉我以上代码在哪里出问题了..

您不能通过findstr命令直接访问jar内容,首先必须解压缩jar ,然后访问内容,如果安装了7-zip,则可以执行以下操作:

"%ProgramFiles%\\7-Zip\\7z.exe" x -y W:\\MasterDataGDDFolders\\Trellis_3.3_Higher\\MasterData.jar -oW:\\MasterDataGDDFolders\\Trellis_3.3_Higher\\MasterData

x用于提取。 -y对所有提示说是, -o是指定输出目录,请注意-o和输出之间没有空格: -oW:\\Master...

您可以通过将其解压缩到的文件夹访问jar文件。 与您的findstr结合使用:

"%ProgramFiles%\7-Zip\7z.exe" x -y W:\MasterDataGDDFolders\Trellis_3.3_Higher\MasterData.jar -oW:\MasterDataGDDFolders\Trellis_3.3_Higher\MasterData
findstr "<Build>" W:\MasterDataGDDFolders\Trellis_3.3_Higher\MasterData\TData.xml 

希望这可以帮助,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM