我试图使用批处理文件来读取我的.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"
任何建议都将不胜感激:)
答案 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!)