Batch file 要读取my.xml中的ever元素的批处理文件

Batch file 要读取my.xml中的ever元素的批处理文件,batch-file,Batch File,我试图使用批处理文件来读取.xml文件的所有元素,以检索文件路径并像播放列表一样按顺序执行它们。下面是my.xml文件的一个示例: <Sunday> <id>1</id> <filePath>\\MOVIESERVER\movie1.mkv</filePath> </Sunday> <Sunday> <id>2</id> <filePath>\\MOVIESERVER\movi

我试图使用批处理文件来读取.xml文件的所有元素,以检索文件路径并像播放列表一样按顺序执行它们。下面是my.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>

1.
\\MOVIESERVER\movie1.mkv
2.
\\MOVIESERVER\movie2.avi
3.
\\MOVIESERVER\movie3.avi
4.
\\MOVIESERVER\Movie4.avi
现在我正在使用这个批处理文件,但它只读取第一个元素“\MOVIESERVER\movie1.mkv” 如何使其循环或逐行按顺序拉出文件路径

@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"
@echo关闭
对于/f“tokens=2 delims=“%%a in('type”C:\VlcTV\VLCPlaylists\Programs\Version\u 3.0\00 Sun.xml“^ | find/i”“”)请设置“var=%%a”

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

您必须激活延迟的扩展:

@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!)
@echo关闭
延迟扩展
对于/f“tokens=2 delims=“%%a in('type”C:\VlcTV\VLCPlaylists\Programs\Version\u 3.0\00 Sun.xml“^ find/i”“)do(
set var=“%%a”
echo!var!)

在批处理文件中添加“setlocal enabledelayedexpansion”时,没有任何更改。它仍然没有按顺序读取每个文件路径。实际上,我注意到它只读取第一个元素是错误的,它看起来实际上读取了第四个或最后一个元素。当我添加“setLocalEnableDelayedExpansion”时,没有任何变化。我正在寻找一种按顺序输出文件路径的方法。有没有办法将每一行(filepath)设置为一个单独的变量?在玩了一些之后,我看到它正在读取所有元素,但它只回显最后一个元素。有没有办法回显每个元素(文件路径)?非常奇怪!它必须呼应所有元素。