バッチスクリプトに問題があります。私は時間&の時間を抽出しようとしていますが、コロンのために私に不完全な日付&時間を与えます。ここでXMLファイル.batがコロンで正しく動作しない
はスクリプトです:
@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"
てみてください。 – Magoo
私の推測では、最初のfor/f文のdelims = '句から': 'を削除するか、' date = %%〜ta:%%〜tb'を使う必要があります。これが当てはまらない場合は、XMLのコンテキストを増やすほうが助かります。 – rojo
私の提案は、文字列操作のハックを捨て、実際にXMLを理解するツールを使用することです。 .batから実行されるxpathを持つxmllintのようなものは、より良い方法です。 –