iT邦幫忙

0

批次檔擷取文字 (原始文件內有特殊符號)

我想要擷取數字123456成為變數 透過以下方法卻發現好像因為有"<" ">" 這兩個符號導致無法輸出

請問有方法可以做到嗎?

for /f "delims= " %%a in ('findstr /C:"<ProductKeyID>" D:\source.xml') do set ID=%%a
echo %ID%

原始檔案"D:\source.xml"的內容

<ProductKey>ABCDEF</ProductKey>
<ProductKeyID>123456</ProductKeyID>
陳軒立 iT邦研究生 5 級 ‧ 2020-07-07 17:54:51 檢舉
google "bat xml"

2 個回答

1
蟹老闆
iT邦大師 1 級 ‧ 2020-07-08 12:20:38
最佳解答

語法不對,即使抓出來也不會是要的值,請改成

for /f "delims=<> tokens=2,2" %%a in ('findstr /C:"<ProductKeyID>" D:\source.xml') do set ID=%%a
echo %ID%

蟹老闆大大每次都是你救我!! 謝謝

我用這樣的語法擷取出來是ProductKeyID 不是我要的123456

是我值填錯了嗎?

token=3 後就可以取得了 非常感謝蟹老闆每一次的幫忙解答

1
海綿寶寶
iT邦大神 1 級 ‧ 2020-07-08 09:11:33

這一篇有 xpath 法和純 bat 法

以下三篇都推 xpath.bat
可以用 xpath 去取得想要的值
第一篇
第二篇
第三篇

我要發表回答

立即登入回答