2017-07-03 109 views
-1

我需要從文本文件中讀取一個值,並使用批處理命令將該值置於XML文件的標記之間。從文本文件中提取特定單詞後放入特定標記之間的XML文件

該文本文件。的text.txt

輸入:

First 10 
Second 13 
Intersection aktivieren 

輸出文件:此任務data.xml中

<First>10</First> 
<Second>13</Second> 
+1

根據你的例子,爲什麼最後一個輸出行不是' aktivieren'? – Aacini

+0

我只需要首先添加兩個參數。我得到了答案。感謝您的評論。 – Newbie0111

回答

0

一個可能的批次代碼:

@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>

以下批處理文件代碼可用於僅處理FirstSecond(區分大小寫)的行作爲第一個空格/製表符分隔的字符串。

@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" 
    ) 
) 
相關問題