谢了楼上兄。。。
这方面的资料都看过,可是特殊字符的处理实在困难。。。
我写了个雏形,兄帮忙看下。。。
使用时call :StrLen "a" "123"
123的长度3就保存在变量a里面了(外层引号自动处理)
- :StrLen
- setlocal enableextensions
- set "str=a%~2"
- set "str=%str:"=s%"
- set "str=%str:^^=s%"
- set "str=!str:%%=s!"
- set /a strlength=0
- :StrLen_1
- set /a strlength+=1
- if not "!str:~%strlength%,1!"=="" goto StrLen_1
- endlocal&set /a "%~1=%strlength%-1"
- goto :EOF
复制代码
可是有两个字符还有麻烦:%、!
!号和%号在传递的时候被预处理掉了,其他符号就没问题了
如果实在没有办法,就用这个了
另外兄,帮忙写浮点运算。。。 |