回复 7# 523066680
改好了!
再看看。- @echo off
- setlocal enabledelayedexpansion
-
- for /l %%a in (1,1,5) do set "tab=!tab! "
- ::排版用的
-
-
- set n=0
- echo;{
- rem 从0级开始
-
- for /f "tokens=2 delims=[]" %%a in (test.txt) do (
- set str=%%a
- rem 有引号,用到变量处理
-
- for /f "tokens=1-4 delims= " %%1 in ("!str!") do (
- for /f "tokens=1-4 delims=," %%1 in ("%%1,%%2,3,%%4") do (
- rem 第3项有 “,” 号,所以要把它先拿掉
-
- rem 根据最后项数值变化判断处于哪一级,
- rem 同级,升级,降级,做不同的处理,并排版。
- rem 排序也可以做,就是效率有点低,如果不影响就算了。
-
- if !n! lss %%4 (
- if not defined v%%1 (
- echo;!tab:~-%%4!"%%1":{
- set v%%1=1
- ) else (
- echo;!tab:~-%%4! %%2
- )
- set one=%%2
-
- set/a n=%%4,m=n-1
- ) else (
- if !n! gtr %%4 (
- for /l %%a in (!m!,-1,%%4) do (
- if defined one (
- echo;!tab:~-%%a! "!one!":{}&set one=
- )
- echo; !tab:~-%%a!},
- )
- set n=%%4
- ) else (
-
- if defined one (
- echo;!tab:~-%%4! "!one!":{},
- )
- set one=%%2
-
- )
- )
-
-
- ))
-
- )
-
- if defined one (
- echo;!tab:~-%n%! "!one!":{}&set one=
- )
-
-
- rem 收尾了,做 “}” 号对齐
- for /l %%a in (!n!,-1,1) do (
- echo;!tab:~-%%a!}
- )
- echo;}
-
- pause
复制代码
|