私はxmlファイルを読むためにこのスクリプトを持っています。ファイルには座標が含まれており、座標を一覧表示したい:
@echo off
setlocal EnableDelayedExpansion
FOR %%K IN (*.xml) DO (
SET K=%%K
SET K=!K:~0,-4!
SET "prep=0"
REM READ DATA
FOR /F "tokens=*" %%X IN (!K!.kml) DO (
if !prep! == 1 (
echo %%X
pause
FOR /F %%L IN ("%%X") DO (
SET L=%%L
IF NOT "!L:~0,1!" == "<" (
echo %%L
)
)
SET "prep=0"
)
if "%%X" == "<coordinates>" ( SET "prep=1" )
)
)
私はこれらの結果を得ました:
14.63778004128814,49.50141683426452,0 14.63696238385996,49.48348965654706,0 14.6
8840586504191,49.47901033971912,0 14.68589371304878,49.49939179836829,0 14.63778
004128814,49.50141683426452,0 </coordinates>
Press and key to continue...
14.63778004128814,49.50141683426452,0
Press and key to continue...
最初に、座標付きの線が表示されます。次に、3 番目のループで、座標が出力されます。しかし、印刷された座標は 1 組しかありません...もう一度キーを押すと、バッチは次の列を印刷せずに終了します。手伝ってくれますか?
編集 回答が投稿された後、質問があります1)これを使用できますか:
SET LF=^
setlocal EnableDelayedExpansion
... (next code) ...
set "var=!var: =%LF%!"
したがって、遅延した LF 変数がない場合は、それを埋め込むことができます。か否か?
そして2)なぜあなたのコードで
for %%L in ("!LF!") do set "X=!X: =%%~L!"
%%L だけでなく、%%~L を使用しましたか