没注意 11 楼 HAT 兄的回帖,抱歉。。。
我的思路与你不一样,兴许你的代码更高效简洁,期待你的结果。。。
我的思路与你不一样,兴许你的代码更高效简洁,期待你的结果。。。
致精致简!
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
Originally posted by zw19750516 at 2008-5-12 02:13:
@echo off&setlocal enabledelayedexpansion
set "str=bat1 ,1bbat;22 t2bat;3 ,3 3bat444babat"
:lp
if "%str:~,3%"=="bat" (
echo.!var!&set var= ...
Originally posted by 26933062 at 2008-5-12 02:20:
不错,但还有个bug 若str结尾不是bat时,会丢失最后的字符。
[ Last edited by 26933062 on 2008-5-12 at 02:23 AM ]
@echo off&setlocal enabledelayedexpansion
set "str=1ba2bat1 ,1bbat;22 t2bat;3 ,3 3bat444babat9999"&set n=0
:lp
if "%str:~,3%"=="bat" (
set /a n+=1
set str=%str:~3%
) else (
set a=%str:~,1%&set var!n!=!var%n%!!a!
set str=%str:~1%
)
if defined str goto lp
for /l %%i in (0,1,!n!) do echo.!var%%i!
pause>nul| 评分人 | 分数 | 时间 |
|---|---|---|
| 26933062 | +5 | 2008-05-12 02:35 |
@echo off&setlocal enabledelayedexpansion
set "str=bats afi/ ouy#ewbattnvbib atcghbat ret,yre;wih9 %bat"
:lp
if not "!str:~,3!"=="bat" (set var=!var!!str:~,1!) else (
if not "!var!"=="" echo !var!&set var=
set str=!str:~2!
)
set str=!str:~1!
if defined str goto lp
if not "!var!"=="" echo !var!
pause
@echo off
set "Str=bat1 ,1bbatbatbat;22 t2bat;3 ,3 3batbat444babat"
:loop
set "num=%str:*bat=%"
call set "var=a%%str:bat%num%=%%a"
if not "%var%"=="aa" echo.%var:~1,-1%
set "str=%num%"
if "%str%"=="%var:~1,-1%" set "num="
if defined num goto loop
pause
@echo off&setlocal
set "str=bat1 ,1bbat;22 t2bat;3 ,3 3bat444babat999999999"
for %%a in ("%str:bat=" "%") do echo/%%~a