中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-05 19:24
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求教,以下代码中参数/变量的问题 查看 675 回复 3
楼 主 求教,以下代码中参数/变量的问题 发表于 2007-09-11 15:17 ·  中国 河南 洛阳 西工区 联通
初级用户
积分 55
发帖 22
注册 2007-09-04 11:55
18年会员
UID 96529
性别 男
状态 离线
@echo off
for /f "delims=" %%i in (a.txt) do call :lis %%i
echo 共有 %str% 个 b
echo\&pause
goto :eof
:lis
set a=0
set var=%~1
:loop
call set num=%%var:~%a%,1%%
if "%num%"=="" goto :eof
if /i "%num%"=="b" set /a str+=1
set/a a+=1
goto loop

实现统计a.txt中字母“b”的个数
此两处红色标记处
1:在lis中并未出现参数%i,在这里何来的调用?
2:%~1是什么意思,我查过此形式,只在call帮助里看到类似形式,但看不懂,请高手为我解惑,谢谢
2 发表于 2007-09-12 17:58 ·  中国 湖北 武汉 电信
中级用户
★★
积分 471
发帖 207
注册 2007-05-03 14:53
19年会员
UID 87369
性别 男
状态 离线
call :lis %%i
%1就是%%i,代表:lis标签的第一个参数%1,因此得到了调用。
3 发表于 2007-09-14 08:25 ·  中国 河南 洛阳 联通
初级用户
积分 55
发帖 22
注册 2007-09-04 11:55
18年会员
UID 96529
性别 男
状态 离线
那:%~1呢,我还是不大明白
4 发表于 2007-09-14 10:08 ·  中国 湖北 武汉 电信
中级用户
★★
积分 471
发帖 207
注册 2007-05-03 14:53
19年会员
UID 87369
性别 男
状态 离线
%~1 就是在%1的基础上去掉两边的双引号。

参考 for /? 。
论坛跳转: