中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-01 20:08
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 有关参数传递 查看 960 回复 1
楼 主 有关参数传递 发表于 2006-06-26 01:43 ·  中国 北京 联通
初级用户
积分 120
发帖 32
注册 2006-06-19 16:31
20年会员
UID 57256
状态 离线
参数传递出错.
@echo off
for /f "tokens=1,2 delims=*" %%i in (productInstalloc.txt) do call :strAna %%i
for /f "tokens=1,2 delims=*" %%i in (productInstalloc.txt) do echo %%i
pause

:strAna
echo %1
for /f "tokens=1,2 delims=," %%i in ("%1") do echo %%i---%%j
goto :EOF

productInstalloc.txt中的内容为:
MSN,"c:\program files\MSN"
QQ,"c:\program files\QQ" .

为什么call strAna时传递的参数为MSN,"c:\program files\MSN",而在strAna中输出的为MSN
2 发表于 2006-06-26 01:59 ·  中国 山西 太原 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re qdcr:

因为逗号在命令行有参数分界符的作用,同样的字符还有空格、跳格、等号、分号等。

使用 echo %1 %2 即可解决问题。
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
论坛跳转: