读取文件名并循环通过以从每个文件中获取顶行以创建XML
例如,我有一个装满文本文件的文件夹读取文件名并循环通过以从每个文件中获取顶行以创建XML,xml,batch-file,Xml,Batch File,例如,我有一个装满文本文件的文件夹 test.txt test_1.txt 每个都有一个这样的URL 我想得到所有.txt文件的文件名,然后从每个文本文件中得到URL,给它一个ID和质量,这样最终的结果会是这样的 <channel ID='1' name='test' url='https://ia600407.us.archive.org/34/items/zfl6_512kb.mp4' quality='best' /> <channel ID='2' name='tes
<channel ID='1' name='test' url='https://ia600407.us.archive.org/34/items/zfl6_512kb.mp4' quality='best' />
<channel ID='2' name='test 1' url='https://ia600407.us.archive.org/34/items/zfwrr_512kb.mp4' quality='best' />
请注意,第二个名称没有下划线,我需要添加下划线,这样它就可以去掉下划线,并在for循环中添加一个空格
SETLOCAL enabledelayedexpansion
设置“sourcedir=U:\sourcedir\t w o”
PUSHD“%sourcedir%”
对于/f“tokens=1*delims=[]”中的%%a('dir/b/a-d“*.txt”^ find/n/v“”)DO(
设置“名称=%%b”
设置“名称=!名称:=!”
对于/f“delims=“%%u IN(“%%b”)DO(
回音(^
)
)
后藤:EOF
您需要更改sourcedir
的设置以适应您的环境
@ECHO关闭
SETLOCAL enabledelayedexpansion
设置“sourcedir=U:\sourcedir\t w o”
PUSHD“%sourcedir%”
对于/f“tokens=1*delims=[]”中的%%a('dir/b/a-d“*.txt”^ find/n/v“”)DO(
设置“名称=%%b”
设置“名称=!名称:=!”
对于/f“delims=”%%u IN('type“%%b“')DO(
>>newfile.xyz ECHO(^
)
)
键入newfile.xyz
流行音乐
后藤:EOF
编辑-请注意,newfile.xyz
是在sourcedir
中创建的。如果在重定向器字符串中使用显式驱动器/路径,则该显式驱动器/路径将覆盖默认值
为完整性增加了popd
请注意,%%u的
现在适用于类型%%b
;以前使用的是文件名,而不是内容。我忘了说“名称”去掉.txt的扩展名我遇到的一个问题是,它没有显示url,而是重新显示了名称。因此,我没有幸创建了xml文件,我将echo写入xml的位置……但是越来越近了!要删除.txt
扩展名,请使用SET“Name=%%~nb”
代替SET“Name=%%b”
。您需要指定正在处理的文件的内容。“url”的确切含义是什么?若要重定向到新文件,请使用>newfile.xyz ECHO(^每个txt文件都有一行,它是一个url,如下所示:“url=”应该是“url=”的位置其中url='%%u'位于^i上方,我尝试放置“>>newfile.xyz ECHO(^>newfile.txt ECHO(^