set dd=1234
我如何判断dd这个变量的长度??请高手指教
我如何判断dd这个变量的长度??请高手指教
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
@echo off & setlocal EnableDelayedExpansion
:begin
set mystr=
set /p mystr=输入要计算长度的字符串(直接回车退出):
if not defined mystr goto :eof
for /l %%i in (0,1,1000) do if "!mystr:~%%i,1!"=="" set strlen=%%i && goto :_endfor
:_endfor
::echo 字符串: "%mystr%"
echo 长 度: %strlen%
set strlen=
goto begin
@echo off
:begin
cls
set mystr=
set /p mystr=输入要计算长度的字符串(直接回车退出):
if not defined mystr goto :eof
set count=0
setlocal enabledelayedexpansion
:intercept
set /a count+=1
for /f %%i in ("%count%") do if not "!mystr:~%%i,1!"=="" goto intercept
echo 长 度: %count%
pause
goto begin
@echo off
set /p str=请输入字符串:
set "str=%str:"= %"
:next
if not "%str%"=="" (
set /a num+=1
set "str=%str:~1%"
goto next
)
echo 输入的字符数:%num%
pause
@echo off
set /p str=请输入字符串:
setlocal enabledelayedexpansion
if not defined str goto :eof
:next
if not "!str:~%num%,1!"=="" (
set /a num+=1
goto next
)
echo 输入的字符数:%num%
pause
Originally posted by namejm at 2006-11-16 06:45:
3F的代码也不失为一种好方法,只是因为 if not "%ii%"=="" 语句的限制,处理英文状态下的引号的时候会出错,如果字符串中可能存在蠮..
Originally posted by vkill at 2006-11-16 07:03:
可以换个别的了,像 if not %ii%*==* ,当然也可以换个很特殊的,三种方法其实都是一种思路,呵呵
[ Last edited by vkill on 2006-11-16 at 07:05 AM ]
@echo off
set /p a=
echo :%a%>tmp.bat
echo set /a r=%%~z0-21>>tmp.bat
call tmp.bat
echo %r%
pause > nul
del tmp.bat
@echo off
set /p str=请输入字符串:
set "str=%str:"= %"
>str.txt set /p "auto=%str%"<nul
call :go str.txt
echo 输入的字符数:%size%
del str.txt
pause >nul
exit
:go
set size=%~z1
goto :eof
C:\TEMP>echo 中华人民共和国|LEN.BAT
请输入字符串:输入的字符数:14
C:\TEMP>ECHO.|TIME
当前时间: 9:30:58.82
输入新时间:
C:\TEMP>ECHO.|TIME|LEN.BAT
请输入字符串:输入的字符数:21
C:\TEMP>
C:\TEMP>TYPE A.TXT
BBS.CN-DOS.NET
C:\TEMP>TYPE A.TXT|LEN.BAT
请输入字符串:输入的字符数:14