@echo off&setlocal
set "str=1234*567*89"
for /f "delims=* tokens=1,2*" %%a in ("%str%") do echo %%a%%b%%c
作者: ansipeter 时间: 2007-5-4 16:25
也可以试试下面的方法,比上面的通用性好些
@echo off&setlocal enabledelayedexpansion
set "str=1234*567*89.d[];534*896"
set a=0&set c=0
:loop
if not defined c (echo %b%&goto:eof)
if not "!str:~%a%,1!" equ "*" (set b=!b!!str:~%a%,1!&set c=!str:~%a%!&set/a a+=1&goto:loop) else (set/a a+=1&goto:loop)
看来是没有好的办法来替换,只好考虑一下如 sed 之类的工具来完成了.
谢谢各位帮助小弟出谋划策!!
作者: digger 时间: 2007-5-5 13:42
真的没有好的办法了吗?
@echo off
set "str=12345*67*89"
:loop
for /f "delims=*" %%i in ("%str%") do call set "var=%%var%%%%i"
set "str_tmp=%str%"
set "str=%str:**=%"
if not "%str_tmp%"=="%str%" goto loop
echo "%var%"
pause
作者: huzixuan 时间: 2007-5-5 17:20
厉害!
是何原理?
作者: slore 时间: 2007-5-5 22:41
@echo off
set "str=1234*5***sdf*67*8*9*abcd*"
:loop
for /f "delims=* tokens=1*" %%a in ("%str%") do (
if not "%%a"=="%str%" set str=%%a%%b&& goto loop
)
echo %str%
pause
谢谢digger更正
[ Last edited by slore on 2007-5-5 at 11:45 PM ]