-1
我需要從文本文件中讀取一個值,並使用批處理命令將該值置於XML文件的標記之間。從文本文件中提取特定單詞後放入特定標記之間的XML文件
該文本文件。的text.txt
輸入:
First 10
Second 13
Intersection aktivieren
輸出文件:此任務data.xml中
<First>10</First>
<Second>13</Second>
我需要從文本文件中讀取一個值,並使用批處理命令將該值置於XML文件的標記之間。從文本文件中提取特定單詞後放入特定標記之間的XML文件
該文本文件。的text.txt
輸入:
First 10
Second 13
Intersection aktivieren
輸出文件:此任務data.xml中
<First>10</First>
<Second>13</Second>
一個可能的批次代碼:
@echo off
if not exist "text.txt" goto :EOF
del "data.xml" 2>nul
for /F "usebackq tokens=1,2" %%I in ("text.txt") do echo ^<%%I^>%%J^</%%I^>>>"data.xml"
對於理解使用的命令以及它們如何工作,打開一個命令提示符窗口,在那裏執行以下命令,並完全讀取一個我們會非常小心地爲每個命令顯示幫助頁面。
del /?
echo /?
for /?
goto /?
if /?
閱讀也是微軟文章關於Using Command Redirection Operators。
XML標籤的尖括號必須用脫字符字符^
轉義爲被解釋爲文字字符而不是重定向運算符。
當然,data.xml
中的第三行是<Intersection>aktivieren</Intersection>
。
以下批處理文件代碼可用於僅處理First
或Second
(區分大小寫)的行作爲第一個空格/製表符分隔的字符串。
@echo off
if not exist "text.txt" goto :EOF
del "data.xml" 2>nul
for /F "usebackq tokens=1,2" %%I in ("text.txt") do (
if /I "%%I" == "First" (
echo ^<%%I^>%%J^</%%I^>>>"data.xml"
) else if /I "%%I" == "Second" (
echo ^<%%I^>%%J^</%%I^>>>"data.xml"
)
)
根據你的例子,爲什麼最後一個輸出行不是' aktivieren Intersection>'? –
Aacini
我只需要首先添加兩個參數。我得到了答案。感謝您的評論。 – Newbie0111