批处理文件,用于读取.xml中的ever元素

时间:2014-06-22 16:21:27

标签: batch-file

我试图使用批处理文件来读取我的.xml文件的所有元素,以检索文件路径并按照播放列表的顺序执行它们。下面是我的.xml文件的一个例子:

<Sunday>
<id>1</id>
<filePath>\\MOVIESERVER\movie1.mkv</filePath>
</Sunday>
<Sunday>
<id>2</id>
<filePath>\\MOVIESERVER\movie2.avi</filePath>
</Sunday>
<Sunday>
<id>3</id>
<filePath>\\MOVIESERVER\movie3.avi</filePath>
</Sunday>
<Sunday>
<id>4</id>
<filePath>\\MOVIESERVER\Movie4.avi</filePath>
</Sunday>
</dataroot>

现在我正在使用这个批处理文件,但它只读取第一个元素&#34; \ MOVIESERVER \ movie1.mkv&#34; 如何让它循环或逐行拉出文件路径?

@echo off
for /f "tokens=2 delims=<>" %%a in ('type "C:\VlcTV\VLCPlaylists\Programs\Version_3.0\00-Sun.xml" ^|find /i "<filepath>" ') do set "var=%%a"

任何建议都将不胜感激:)

1 个答案:

答案 0 :(得分:1)

您必须激活延迟扩展:

@echo off
setlocal enabledelayedexpansion
for /f "tokens=2 delims=<>" %%a in ('type "C:\VlcTV\VLCPlaylists\Programs\Version_3.0\00-Sun.xml" ^|find /i "<filepath>" ') do (
 set var="%%a"
 echo !var!)