中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-01 18:01
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]call命令调用类似函数的东东可不可以带返回值? 查看 1,034 回复 3
楼 主 发表于 2006-05-09 13:39 ·  IANA 局域网IP(Private-Use)
初级用户
积分 28
发帖 8
注册 2006-04-30 11:19
20年会员
UID 54714
状态 离线
多谢了!!!
再问个问题,call命令调用类似函数的东东,可不可以带返回值?

还是只有下面的方法返回需要的值(类似于c++的按址传值)
如 i+j = answer:

@echo off
set /a i = 19
set /a j = 12
call:fun i j answer
echo %answer%
goto :EOF

:fun
set /a answer = %1+%2
goto :EOF
2 发表于 2006-05-09 17:39 ·  中国 辽宁 锦州 中移铁通
荣誉版主
★★★
积分 1,338
发帖 356
注册 2005-07-15 12:09
21年会员
UID 40733
性别 男
状态 离线
To persiancat

只有这样的方法返回需要的值,不放过可以更灵活一点,不必关心调用时的变量名。
需简单修改一下 fun 函数如下:

:fun
set /a %3 = %1+%2
goto :EOF
  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

3 发表于 2006-05-10 00:49 ·  IANA 局域网IP(Private-Use)
初级用户
积分 28
发帖 8
注册 2006-04-30 11:19
20年会员
UID 54714
状态 离线
知道了,thx
4 发表于 2006-06-22 09:16 ·  中国 山西 运城 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线

───────────────── 版务记录 ─────────────────
执行:Will Sort
操作:分割主题
主题:20496 - set 的变量赋值在for里面怎么实现啊?
说明:主题内讨论内容与方向有显著分歧
───────────────── 版务记录 ─────────────────
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
论坛跳转: