读取文件名并循环通过以从每个文件中获取顶行以创建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

例如,我有一个装满文本文件的文件夹

  • 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='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(^