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


    代码保存为bat文件,跟xml放一起,运行后会生成与xml同名的csv文件。
  1. @echo off &setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /b /a-d *.xml') do (
  3. (set "v="&echo classID, skillName, skillId, skillLevel, getLevel, levelUpSp
  4. for /f tokens^=1-10^ delims^=^ ^=^<^" %%a in (' findstr "=" "%%i" ') do (
  5. if /i "%%a"=="skillTree type" (set "v1=%%d")
  6. if /i "%%a"=="skill skillName" (
  7. set "v=!v1!, %%b, %%d, %%f, %%h"
  8. if /i "%%j" neq "true" (echo !v!, %%j) else echo !v!
  9. )
  10. ))>%%~ni.csv
  11. )
  12. pause
复制代码

TOP

本帖最后由 qixiaobin0715 于 2024-9-19 13:35 编辑

classID与其它字段不在一行,并且它们之间可能会有其它无效行的干扰(虽然也进行了粗略筛选),调试时稍微复杂一些:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set BoxHead=classId skillName skillId skillLevel getLevel levelUpSp
  4. for %%i in (%BoxHead%) do set %%i=true
  5. echo,%BoxHead%
  6. for /f "delims=" %%i in ('findstr "skill" *.xml') do (
  7.     set n=
  8.     set NewLine=!classId!
  9.     for %%j in (%%i) do (
  10.         if /i "!str!"=="classId" (
  11.             set NewLine=%%~j
  12.             set classId=%%~j
  13.         ) else if defined !str! (
  14.             set NewLine=!NewLine! %%~j
  15.             set n=1
  16.         )
  17.         set "str=%%~j"
  18.     )
  19.     if defined n (
  20.         echo,!NewLine!
  21.         set NewLine=
  22.     )
  23. )
  24. pause
复制代码

TOP

返回列表