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

程式化 克隆...
  1. @echo off &setlocal enabledelayedexpansion
  2. chcp 65001>nul&cls
  3. (for /f tokens^=1-6^ delims^=^ ^=^<^" %%1 in (' findstr "=" "1.xml" ') do (
  4. if /i "%%1"=="skill id" ((if defined v echo,!v!)&set "v=%%2 %%4 %%6")
  5. if /i "%%1"=="set name" (set "v=!v! %%4")
  6. ))>"sour.csv"
  7. if defined v (echo,!v!)>>"sour.csv"
  8. endlocal&exit/b
复制代码

TOP

回复 3# zhengwei007
  1. @echo off &setlocal enabledelayedexpansion
  2. chcp 65001>nul&cls
  3. (for /f "delims=" %%F in ('dir/b/s/a-d *.xml') do (
  4. for /f tokens^=1-6^ delims^=^ ^=^<^" %%1 in (' findstr "=" "%%~F" ') do (
  5. if /i "%%1"=="skill id" ((if defined v echo,!v!)&set "v=%%2 %%4 %%6")
  6. if /i "%%1"=="set name" (set "v=!v! %%4")
  7. )
  8. if defined v (echo,!v!&set "v=")
  9. ))>"sour.csv"
  10. endlocal&exit/b
复制代码

TOP

本帖最后由 aloha20200628 于 2024-3-7 20:33 编辑


为进一步提高for/f逐行处理的效率,可用 skill id 和 set name 过滤其余冗余行,至少约占示例文件的1/2总行数,放大至几百个文件,其效率增益还是可观的...
订正4楼代码如下
  1. @echo off &setlocal enabledelayedexpansion
  2. chcp 65001>nul&cls
  3. (for /f "delims=" %%F in ('dir/b/s/a-d *.xml') do (
  4. for /f tokens^=1-6^ delims^=^ ^=^<^" %%1 in (' findstr /ic:"skill id=" /ic:"set name=" "%%~F" ') do (
  5. if /i "%%1"=="skill id" ((if defined v echo,!v!)&set "v=%%2 %%4 %%6")
  6. if /i "%%1"=="set name" (set "v=!v! %%4")
  7. )
  8. if defined v (echo,!v!&set "v=")
  9. ))>"sour.csv"
  10. endlocal&exit/b
复制代码
1

评分人数

TOP

返回列表