我有這個腳本來讀取xml文件。該文件包含座標和我想列出的座標:從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...
首先,你看到的座標系。其次,在第三個循環中,打印座標。但是我只打印了一對座標......如果再次按下某個鍵,則批次將不打印下一列。你能幫我嗎?
編輯 答案已經發布後,我有問題1)我們可以利用這一點:
SET LF=^
setlocal EnableDelayedExpansion
... (next code) ...
set "var=!var: =%LF%!"
因此,當不存在延遲LF變量,我們可以將其嵌入。或不?
; 2)爲什麼在你的代碼
for %%L in ("!LF!") do set "X=!X: =%%~L!"
你使用%%〜L和不只是%%大號
謝謝。這是一個很長的回答(替代解決方案非常簡單)。我會多次評論這個。現在只需註釋xml解析。不,我不打算創建XML解析器。我只需要這一個信息。這個xml是由程序生成的,並且應該始終是相同的。 – user1141649 2012-04-07 14:35:14
我刪除擴展名的原因是我在此代碼後創建了文件夾。另外我會將座標以行格式寫入名爲temp /!K!.txt的文件 – user1141649 2012-04-07 15:01:56
爲什麼我不能添加如下所示的引號: SET「LF = ^」(換行符在這裏出現) – user1141649 2012-04-07 15:12:52