联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
Originally posted by 26933062 at 2008-5-29 09:35 PM: 呵呵,楼上的就真的存在效率问题了。
@echo off&setlocal enabledelayedexpansion for /f "tokens=*" %%a in (a.txt) do ( set "str=%%a" set "str=!str:[=!" if not "%%a"=="!str!" echo. echo %%a ) pause
@echo off&setlocal enabledelayedexpansion for /f "delims=" %%i in (1.txt) do ( echo %%i|findstr "^\[.*\]$">nul&&echo. for %%j in (%%i) do set str=!str! %%j echo !str:~1!&set str= ) pause>nul
Originally posted by WANKOILZ at 2008-5-29 10:16 PM: 同时去掉行前面的空格:[code]@echo off&setlocal enabledelayedexpansion for /f "delims=" %%i in (1.txt) do ( echo %%i|findstr "^\[.*\]$">nul&&echo. fo ...
@echo off for /f "delims=:" %%a in ('findstr /n ".*\[..*\]" a.txt') do set .%%a=a for /f "tokens=1* delims=:" %%a in ('findstr /n .* a.txt') do ( if defined .%%a echo. for /f "tokens=*" %%i in ("%%b") do echo.%%i ) pause
*代表重复前面字符的0或n次 .代表至少一个字符。 如果是".*\[.*\]" 这样的话,那么也匹配 [] 这样的结果了。即:[]中间没有内容也匹配了。