标题: [文本处理] 批处理如何计算出字符串的长度,即有几个字符? [打印本页]
作者: digitbear 时间: 2015-1-29 19:05 标题: 批处理如何计算出字符串的长度,即有几个字符?
假定一字符串 “sadkljsa;dlw”,计算出这个字符串的长度,即有几个字符。
作者: CrLf 时间: 2015-1-29 19:28
给你个金光闪闪的链接:
http://bbs.bathome.net/viewthread.php?tid=11799
作者: amwfjhh 时间: 2015-1-29 19:36
果是金光闪闪……
作者: pcl_test 时间: 2015-1-29 19:36
本帖最后由 pcl_test 于 2015-1-29 19:41 编辑
回复 1# digitbear - @echo off
- setlocal EnableDelayedExpansion
- set "str=sadkljsa;dlw"
- for /l %%i in (0,1,1000) do if "!str:~%%i,1!"=="" set strlen=%%i && goto :end
- :end
- echo 字符串长度为 %strlen%
- pause
复制代码
作者: amwfjhh 时间: 2015-1-29 20:08
如果是非双字节字符的话,可以用一个比较BT的办法- @echo off
- set "str=sadkljsa;dlw"
- set/p"=%str%"<nul>$
- for %%i in ("$") do echo,字符串总长 %%~zi 字节
- del /f $
- pause
复制代码
作者: 慕夜蓝化 时间: 2015-1-29 21:09
- @echo off
- setlocal EnableDelayedExpansion
- set "str=sadkljsa;dlw"
- :length
- set/a n+=1
- if not "!str:~%n%!"=="" goto :length
- echo,%n%
- pause
复制代码
这个东西判断的是字符,如果是汉字,也是一个字符。
作者: 慕夜蓝化 时间: 2015-1-29 21:31
回复 5# amwfjhh
也看到了这样的写法;- for /f %%i in ("$") do echo,%%~za
复制代码
还有:- for %%i in ($) do echo,%%~za
复制代码
比较偏,就是在查询文件的大小,如果能批量使用就好了。
作者: terse 时间: 2015-1-30 01:16
假定没特殊情况的话 这样也可以- set "str=sadkljsa;dlw"
- cmd /u /c echo;%str%|find /v /c ""
- pause
复制代码
作者: CrLf 时间: 2015-1-30 02:16
回复 8# terse
不适用于宽字符
作者: terse 时间: 2015-1-30 09:39
回复 9# CrLf
嗯 确实是
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |