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