[英]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.