我的批处理脚本有问题。我正在尝试提取时间和日期,但由于冒号,它给了我一个不完整的日期和时间。
下面是脚本:
@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"