|
|
发表于 2023-12-22 16:12:19
|
显示全部楼层
受10楼代码启示,这样应当在逻辑上更容易理解些:
1.找出"Soul Crystal"和"</item>"所在的行数;
2.根据第1条找出数据所在行的行数,并随后对这些行进行处理,得到所需ID数值。- @echo off
- (for /f "delims=" %%i in ('findstr /m /c:"Soul Crystal" *.xml') do (
- setlocal enabledelayedexpansion
- for /f "tokens=1,2 delims=: " %%j in ('findstr /ilnc:"Soul Crystal" /inc:"</item>" "%%i"') do (
- set n=%%j
- if "%%k"=="</item>" (
- set /a n-=1
- set _!n!=true
- ) else (
- set /a n+=1
- set #!n!=true
- )
- )
- for /f "tokens=1,4 delims=: " %%a in ('findstr /n .* "%%i"') do (
- if defined #%%a (
- for /f "tokens=2 delims==" %%c in ("%%b") do set "str=%%~c"
- ) else if defined _%%a (
- for /f "tokens=2 delims==" %%c in ("%%b") do echo,!str!,%%~c
- )
- )
- endlocal
- ))>out.csv
- pause
复制代码 |
|