由于冒号,.bat提取的 XML 文件无法正常工作



我的批处理脚本有问题。我正在尝试提取时间和日期,但由于冒号,它给了我一个不完整的日期和时间。

下面是脚本:

@echo off
setlocal EnableDelayedExpansion
(for /F "tokens=1,2 delims=:<>" %%a, in ('findstr "xxxxxxxxxxxName="PHIL" XXXXXXXX="Executive13"" *.xml') do (
   set "list=%%b"
   for /F "delims=" %%c in (^"!list: ^=^
% Do NOT remove this line %
!^") do set %%c
   if "!xxxxxxxxxxxName!+!XXXXXXXX!" equ ""PHIL"+"Executive13"" (
      echo File: "%%a", date=%%~ta", testDuration=!testDuration!, holidayCount=!holidayCount!, lockTime=!lockTime!"
   )
)) > Outputfile.txt
start notepad outputfile.txt

时间在XML文件中的日期为:(提取自"lockTime"(:

 <testInfo testDuration="57" holidayCount="0" completedtask="12" XXXXXXXXXXName="PHIL" testVersion="13" lockTime="2017-04-11T11:20:05" 
    <result testStepName="locating" sequenceNrResult="1" testStepResult="OK">
    etc.
    </testInfo>
</testresult>

如何解决冒号此问题?

输出文件始终如下所示:

lockTime="2017-04-11T08"

使用 for /f 循环捕获此内容:

powershell "([xml](gc xmlfile.xml)).SelectSingleNode('//*[@lockTime]').lockTime"

。这将从包含 lockTime 属性的第一个 XML 节点中抓取lockTime值。

尝试使用xpath.bat

call xpath.bat locktime.xml "//@lockTime"

最新更新