[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理怎样递归目录,输出对应的xml文件?

用bat实现,递归目录,输出对应的xml文件


1、下面是用tree /f 打印出来的目录结构
D:.
│  
├─天国地狱
│      Test.txt
│      天国地狱.txt
│      
├─战场
│      怪物能力.txt
│      战场.txt
│      
└─神殿攻防战
    │  神殿NPC.txt
    │  神殿攻防战.txt
    │  
    └─AA
        │  AA.txt
        │  神殿NPC.txt
        │  
        └─BB
                BB.txt
                神殿攻防战.txt

2、下面是根据1来输出的xml文档内容(注意:XXXX代表文件夹或文件前面的绝对路径)
<?xml version="1.0" encoding="utf-8" ?>

<Document>
        <Button name="天国地狱" path="XXXX\天国地狱\天国地狱.txt">
                <Button name="Test" path="XXXX\天国地狱\Test.txt"/>
        </Button>
        <Button name="战场" path="XXXX\战场\战场.txt">
                <Button name="怪物能力" path="XXXX\战场\怪物能力.txt"/>
        </Button>
        <Button name="神殿攻防战" path="XXXX\神殿攻防战\神殿攻防战.txt">
                <Button name="神殿NPC" path="XXXX\神殿攻防战\神殿NPC.txt"/>
                <Button name="AA" path="XXXX\神殿攻防战\AA\AA.txt">
                        <Button name="神殿NPC" path="XXXX\神殿攻防战\AA\神殿NPC.txt"/>
                        <Button name="BB" path="XXXX\神殿攻防战\AA\BB\BB.txt">
                                <Button name="神殿攻防战" path="XXXX\神殿攻防战\AA\BB\神殿攻防战.txt"/>
                        </Button>
                </Button>
        </Button>
</Document>

本帖最后由 went 于 2022-12-14 20:27 编辑
  1. @echo off & cd /d "%~dp0"
  2. set "TAB=    "
  3. (
  4. echo.^<?xml version="1.0" encoding="utf-8" ?^>
  5. echo. ^<Document^>
  6. for /d %%i in (*) do call :build_dir "%cd%\%%~i" "%TAB%"
  7. echo. ^</Document^>
  8. ) > "%~n0.xml"
  9. type "%~n0.xml"
  10. pause&exit
  11. :build_dir
  12. echo.%~2^<Button name="%~n1" path="%~1\%~n1.txt"^>
  13. for %%i in ("%~1\*.txt") do if not "%%~ni"=="%~n1" echo.%~2%TAB%^<Button name="%%~ni" path="%%~i"/^>
  14. for /d %%i in (%~1\*) do call :build_dir "%%~i" "%~2%TAB%"
  15. echo.%~2^</Button^>
复制代码
1

评分人数

TOP

回复 2# went


    牛啊,没毛病

TOP

回复 2# went


    厉害,巧妙地递归了文件和文件

QQ 20147578

TOP

本帖最后由 czjt1234 于 2022-12-15 07:52 编辑
  1. Dim oStream, file1, file2, s
  2. file1 = "1.txt"    '源文件
  3. file2 = "2.txt"    '目标文件
  4. Set oStream = CreateObject("ADODB.Stream")
  5. oStream.Type = 2    'adTypeText
  6. oStream.Mode = 3    'adModeReadWrite
  7. oStream.Charset = "gb2312"    '原编码
  8. oStream.Open()
  9. oStream.LoadFromFile file1
  10. s = oStream.ReadText()
  11. oStream.Close()
  12. oStream.Charset = "utf-8"     '目标编码
  13. oStream.Open()
  14. oStream.WriteText s
  15. oStream.SaveToFile file2, 2    'adSaveCreateOverWrite
  16. oStream.Close()
  17. MsgBox "ok"
复制代码


可能你还需要一个转换编码的vbs

QQ 20147578

TOP

二楼代码15行for里路径是不是加上引号呢 以免空格情况

TOP

返回列表