中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 12:51
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 参数表示符 % 问题` 查看 1,092 回复 12
楼 主 参数表示符 % 问题` 发表于 2006-11-15 01:27 ·  中国 湖南 长沙 电信
初级用户
★★
积分 182
发帖 75
注册 2006-10-11 00:10
19年会员
UID 65220
性别 男
状态 离线
我曾经在洪恩DOS里面看过一篇教程..里面有这样一段..

%表示参数,参数是指在运行批处理文件时文件名后加的字符串。变量可以从%0-%9
,%0表示文件名本身,字符串用到%1到%9顺序表示...

这段中我只知道用%0,却不知道%1-%9是如何的表示法..

望高手详细解说下.. 最好举个例子噢.. 3Q
2 发表于 2006-11-15 03:32 ·  中国 湖南 长沙 电信
初级用户
★★
积分 182
发帖 75
注册 2006-10-11 00:10
19年会员
UID 65220
性别 男
状态 离线
难道没有一个人愿意说?`` 伤心 T_T
3 发表于 2006-11-15 03:50 ·  中国 江苏 苏州 联通
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
19年会员
UID 60484
状态 离线
copy src dst
%0 %1 %2
4 发表于 2006-11-15 03:58 ·  中国 湖南 长沙 电信
新手上路
积分 12
发帖 4
注册 2006-10-10 01:47
19年会员
UID 65119
性别 男
状态 离线
说详细一点吧`` 偶不懂``
5 发表于 2006-11-15 03:59 ·  中国 安徽 芜湖 电信
高级用户
★★
积分 537
发帖 219
注册 2006-10-31 21:08
19年会员
UID 69036
性别 男
来自 芜湖
状态 离线
顶!我也不会
有没有高手来解答呀!!!!!!!
6 发表于 2006-11-15 06:02 ·  中国 江苏 宿迁 电信
初级用户
积分 37
发帖 22
注册 2006-11-11 21:44
19年会员
UID 70242
性别 男
状态 离线
可能就是对应关系了!
7 发表于 2006-11-15 09:37 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
20年会员
UID 42173
性别 男
状态 离线
这是一个命令
C:\>copy src dst
  ↑  ↑ ↑
  %0 %1 %2
命令自身是 %0,第一个参数是 %1,也就是 src,第二个是 dst,也就是变量 %2

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
8 发表于 2006-11-15 10:59 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

  electronixtar 兄讲解欠佳吧,%0、%1、%2……形式的参数只在命令行调用可执行文件的时候才有的,还有就是call命令可以参数。在命令行命令里面没有这样用参数的吧?

  参数不是变量,要注意区分。

9 发表于 2006-11-15 14:32 ·  中国 湖南 长沙 宁乡市 电信
初级用户
★★
积分 182
发帖 75
注册 2006-10-11 00:10
19年会员
UID 65220
性别 男
状态 离线
谢谢各位热心回答的朋友,但是还是不知道怎么运用在实际的批处理中>> ..
哪位大哥能给我举个通俗易懂的例子吗..实际点的最好了..
10 发表于 2006-11-15 17:51 ·  中国 上海 奉贤区 电信
初级用户
DOSFans
积分 48
发帖 21
注册 2006-10-22 02:14
19年会员
UID 67619
性别 男
状态 离线
For example:

在批处理文件a.bat里编辑:
@echo off
cls
type %1 %2

批处理文件本身就是一可执行的命令,可在命令行下执行;就拿上例来说吧,
a.bat 1.txt 2.txt (此命令的执行结果等价于type 1.txt 2.txt,在命令中用实参来代替批处理文件中的形参%*)
此时的a.bat(批处理文件本身)就好比批处理参数%0
1.txt就好比是%1,2.txt好比是%2;
%0~%9就好比是形参,而1.txt,2.txt就好比是实参。
批处理:探索你的世界到底有多精彩!
11 发表于 2006-11-15 22:54 ·  中国 辽宁 大连 联通
初级用户
积分 30
发帖 11
注册 2006-10-11 02:52
19年会员
UID 65248
性别 男
来自 tre
状态 离线
那批处理中有取余操作么?怎么用呢?
在命令行中用 set /a a=5%4
就能得到 1
而写到批处理文件中,它总认为%4是参数,我不想用别的参数代替4,
那应该怎么做取余操作阿?

[ Last edited by stableboy on 2006-11-15 at 11:00 PM ]
发现这个论坛,我以后就在这里学习了~!
12 发表于 2006-11-15 23:31 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
set /a a=5%%4
echo %a%
pause
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
13 发表于 2006-11-16 02:40 ·  中国 辽宁 大连 联通
初级用户
积分 30
发帖 11
注册 2006-10-11 02:52
19年会员
UID 65248
性别 男
来自 tre
状态 离线
Originally posted by ccwan at 2006-11-15 23:31:
set /a a=5%%4
echo %a%
pause




收到,谢谢啦~!
发现这个论坛,我以后就在这里学习了~!
论坛跳转: