中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-09 23:34
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎么判断路径中有多少个字节?(不是字符) 查看 802 回复 5
楼 主 怎么判断路径中有多少个字节?(不是字符) 发表于 2008-09-28 13:09 ·  中国 广东 深圳 罗湖区 电信
初级用户
★★
积分 132
发帖 68
注册 2008-07-29 20:51
18年会员
UID 122345
性别 男
状态 离线
中文占两个字节,有些字符也占两个字节
比如:判断c:\program files\聊天软件\〓\你好.exe

一个字符=2字节


2 发表于 2008-09-28 13:19 ·  中国 广东 深圳 罗湖区 电信
初级用户
★★
积分 132
发帖 68
注册 2008-07-29 20:51
18年会员
UID 122345
性别 男
状态 离线
VBSCRIPT中有LENB,不过不会用
3 发表于 2008-09-28 13:38 ·  中国 广东 深圳 罗湖区 电信
初级用户
★★
积分 132
发帖 68
注册 2008-07-29 20:51
18年会员
UID 122345
性别 男
状态 离线
Dim s
s="c:\program files\聊天软件\〓\你好.exe"
s=Lenb(s)
msgbox s
4 发表于 2008-09-28 17:30 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
VBS使用的是unicode,即中英文均采用双字节!!!!!!

所以

Dim s
s = "c"
s = Lenb(s)
MsgBox s '结果为2

你要区分自己 Asc 下然后判断是不是1~127
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
5 发表于 2008-09-28 18:49 ·  中国 福建 漳州 联通
中级用户
★★
积分 228
发帖 125
注册 2008-08-25 19:17
17年会员
UID 124135
性别 男
状态 离线
@echo off&setlocal enabledelayedexpansion
set/p input=输入:
set str=%input%

if not "%str%" == "" (
for /f "skip=1 delims=:" %%i in ('^(echo %str%^&echo.^)^|findstr /o ".*"') do set/a l=%%i-3
)

echo 您查找的 %input% 共 %l% 个字节
pause>nul
exit

这样速度还不错,之前做了过多无聊的工作

[ Last edited by hackate on 2008-9-28 at 20:18 ]
6 发表于 2008-09-28 19:14 ·  中国 福建 漳州 联通
中级用户
★★
积分 228
发帖 125
注册 2008-08-25 19:17
17年会员
UID 124135
性别 男
状态 离线
查字节数,直接存下不就好了。
@echo off
set/p input=输入:
echo %input%>tmp.txt
for %%i in ("tmp.txt") do set n=%%~zi
set/a n-=2
echo 您查找的 %input% 共 %n% 个字节
pause>nul

==============
此代码乃Slore兄给的方式,比我的效率高多了.呵呵..实在不错
论坛跳转: