![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-01 19:04 |
共 48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,249 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 求熟悉%1这个变量的作用的朋友指点我一二 |
| 可打印版本 1,094 / 8 |
| 第1楼 nblue | 发表于 2006-06-24 14:29 |
| 初级用户 发帖 37 积分 117 | |
|
求熟悉%1这个变量的作用的朋友指点我一二 我现在对批处理非常感兴趣,在网上下载了一个教程来学,但学到用变量这一节时总是感觉思路不通,想绕过去学下一节可是根本绕不过去,看来一定要将变量高明白才能学下一节。但我怎么也高不明白,可能是教程讲的不太明白或者少了点什么。现在我不明白的是,这个变量参数是如何同命令联系起来的?%1是指命令本身,那%2-%9是各指什么 ?在实际运用中如何使用?哎,没搞懂连问问题也不知应该怎么问了。多谢!
|
|
| 第2楼 bagpipe | 发表于 2006-06-24 14:51 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
%0---表示批处理本身
%1---表示第一个参数 %2---........二........... %3 . . . %*表示所有的参数,没有什么好说的 |
|
| 第3楼 nblue | 发表于 2006-06-24 17:24 |
| 初级用户 发帖 37 积分 117 | |
Originally posted by bagpipe at 2006-6-24 14:51: 你对这个熟悉当然觉得没什么好说的了呀 %0---表示批处理本身,表示本身有什么作用? %1---表示第一个参数,表示 第一个什么参数?如何使用? %2---........二........... %3 |
|
| 第4楼 xjmxjm1234 | 发表于 2006-06-24 18:14 |
| 中级用户 发帖 166 积分 361 | |
|
怎么说呢,这里的 %1~%9 是形式参数,在操作中会被实际参数所替代,使批命令更加灵活,举个例子吧。
有个批命令叫“copydata.bat” copy %1.dat %2.dat del %3.tmp cd %4 dir type 0%.bat 如果我键入 copydata a:\old c:\set\new e:\land genk 时 就相当于 copy a:\old.dat c:\set\new del e:\land.tmp cd genk dir type copydata.bat 因为最多只有10个参数,要执行更多的参数就要用“shift”命令 shift命令 就是 把%1代替%0 把%2代替%1 把%3代替%2 (类推) [ Last edited by xjmxjm1234 on 2006-6-26 at 22:24 ] |
|
| 第5楼 nblue | 发表于 2006-06-25 19:56 |
| 初级用户 发帖 37 积分 117 | |
Originally posted by xjmxjm1234 at 2006-6-24 18:14: 多谢你的回复,非常浅显,但我不明白用这个参数不是更加复杂了吗?还不如直接用原来的命令更直接! |
|
| 第6楼 nblue | 发表于 2006-06-25 19:58 |
| 初级用户 发帖 37 积分 117 | |
Originally posted by xjmxjm1234 at 2006-6-24 18:14: 不过用此参数好像在输入的时候可以更灵活一些,而不用更改批处理本身 |
|
| 第7楼 220110 | 发表于 2006-06-25 21:05 |
| 荣誉版主 发帖 313 积分 718 | |
|
不过用此参数好像在输入的时候可以更灵活一些,而不用更改批处理本身 ----聪明!建议学点高级编程语言先吧.
|
|
| 第8楼 willsort | 发表于 2006-06-25 23:31 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re xjmxjm1234:
“1%~9%”,是有意要这么写的吗? |
|
| 第9楼 xjmxjm1234 | 发表于 2006-06-26 22:23 |
| 中级用户 发帖 166 积分 361 | |
|
大哥,我错了,是 %1~%9
to: nblue 如果我不输入 copydata a:\old c:\set\new e:\land genk,而是 copydata a:\aaa c:\bbb e:\ccc ddd 就相当于 copy a:\aaa.dat c:\bbb.dat del e:\ccc.tmp cd ddd dir type copydata.bat 当然这些参数是可以你按照要求来改变的,这就是我说的"这里的 %1~%9 是形式参数,在操作中会被实际参数所替代" 第1次的 a:\old c:\set\new e:\land genk 和第2次的 a:\aaa c:\bbb e:\ccc ddd 都是实际参数 在执行批命令的时候会按照它们的顺序来取代形式参数(就是 %1~%9) 这里的 0% 指批命令主名 1% 被 第1个实际参数替代 2% 被 第2个实际参数替代 3% 被 第3个实际参数替代(类推) 实际参数就是在命令后面所跟的执行对象,它们和命令名和它们之间一般用空格隔开 因为实际参数的可变性使的带形式参数的批命令更加灵活机变. [ Last edited by xjmxjm1234 on 2006-6-26 at 22:25 ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |