Originally posted by clian76 at 2009-1-8 23:17:
有什么办法把变量:
!_str!
!j!
!strout:~0,-1!
拿到endlocal之后,就是这里的PAUSE之后让程序正常显示变量。我试了把endlocal拿到代码最后,这样程序就 ...
这样呢?
@echo off
FOR /F %%a IN ('echo %random%^&echo %random%^&echo %random%') do (
set j1=&set s1=
call :rndd %%a j1 s1
if defined j1 (call echo %%a 有%%j1%%对(%%s1%%)) else echo %%a 有0对
)
pause&goto:EOF
:rndd
setlocal enabledelayedexpansion
set str=%1
set j=
for /l %%x in (1,1,5) do (
if "!str!" neq "" (
set i=!str:~0,1!
if not defined str!i! (set str!i!=1) else set/a str!i!+=1,j=0
set str=!str:~1!
) )
if defined j (
for /f "tokens=1,2delims==" %%i in ('set str')do if %%j gtr 1 set str=%%i&set "strout=!strout!!str:~3,1!和"&set/a j+=%%j/2
)
endlocal&if "%strout%" neq "" set %2=%j%&set %3=%strout:~0,-1%
Last edited by linee on 2009-1-9 at 15:57 ]