联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
(echo string&echo.)|findstr /o ".*"
set/p x=input: for /f "skip=1 delims=:" %%i in ('^(echo "%x%"^&echo.^)^|findstr /o ".*"') do set/a l=%%i-5 echo %l% pause
echo string>t&for %a in (t) do set/a z=%~za-2&del t
SETLOCAL ENABLEDELAYEDEXPANSION SET "TMPITEM=Hello World!" :: FINDSTR /O法,添加了空判断以适应TMPITEM=空的情况 ECHO !TIME! IF DEFINED TMPITEM ( FOR /F "skip=1 delims=:" %%I IN ('^(echo "%TMPITEM%"^&echo.^)^|findstr /o ".*"') DO ( SET /A "TMPITEM_LEN = %%I - 4" ) ) ELSE ( SET "TMPITEM_LEN=0" ) ECHO !TIME! ECHO %TMPITEM_LEN% :: 逐个字符计数法 SET "TMPITEM_LEN=0" ECHO !TIME! IF DEFINED TMPITEM ( :GetLenLoop SET "TMPTMP=!TMPITEM:~%TMPITEM_LEN%,1!" && SET /A "TMPITEM_LEN += 1" && GOTO :GetLenLoop ) ECHO !TIME! ECHO !TMPITEM_LEN! ENDLOCAL
Originally posted by BatMan at 2008-1-7 02:43: 这个方法可以,但是我试了一下,发现这方法比逐个字符判断要慢很多... [code] SETLOCAL ENABLEDELAYEDEXPANSION SET "TMPITEM=Hello World!" :: FINDSTR /O法 ...
Originally posted by zh159 at 2008-1-7 10:17: FINDSTR /O 好处是可以判断双字节字符,在单双字节字符窗口中排版很有用