如何用批处理提取字符串中的子字符串

[复制链接]
查看11 | 回复1 | 2007-12-15 08:40:58 | 显示全部楼层 |阅读模式
@echo offsetlocal enabledelayedexpansionfor /f "tokens=1,2,3 delims=:." %%i in (test.txt) do (
set /a n+=1 set m=%%i set m=!m:~-1! for /f "tokens=1,2 delims= " %%a in ("%%k") do ( set size!n!=%%b
set name!n!=!m!:%%j.%%a ))for /l %%i in (1,1,!n!) do ( echo size^(%%i^)=!size%%i! name^(%%i^)=!name%%i!)pausegoto :eof'用VBS写了一个,看看可不可以?dim i,smset fso=createobject("scripting.filesystemobject")set file=fso.opentextfile("test.txt")do while file.atendofstreamtrue n=trim(file.readline) i=i+1 redim name(i),size(i) text nloopfile.closewscript.echo smset fso=nothingset file=nothingset i=nothingset sm=nothingsub text(a) k=instr(a," "):j=instrrev(a," ") size(i)=mid(a,j+1):name(i)=mid(a,k+1,j-k-1) sm=sm&"name("&i&")="&name(i)&vbcrlf&"size("&i&")="&size(i)&vbcrlfend sub
回复

使用道具 举报

千问 | 2007-12-15 08:40:58 | 显示全部楼层
完美解决方案,@echo offfor /f "tokens=1* delims= " %%i in (a.txt) do (setlocal enabledelayedexpansionfor %%a in (%%j) do set "size=%%a"call :lis %%jecho !name! !size!endlocal)pause&exit:lisset "name=%*"if defined ok goto :eofif "%name:~-2,1%"==" " set ok=acall :lis %name:~0,-1%goto :eof
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行