![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-03 18:15 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 学习批处理,不懂的命令!请进 |
| 可打印版本 2,243 / 18 |
| 第1楼 verber34 | 发表于 2006-12-31 01:52 |
| 初级用户 发帖 19 积分 52 | |
|
学习批处理,不懂的命令!请进 1.刚刚学习批处理,下载了本网站中的示范,有一个不懂的命令:
显示C-Z盘: set disk=cdef......... (不写了..) for /L %%a in (1,1,24) do call echo %%disk~%%a,1%% 请问: 这里的 call 是什么意思? 它不是用来调用另一个批处理吗?? 把它取了,运行就不正常了! 还有一个: 为什么调用disk时,需要写成%%disk%%,而不是%disk% ..本人愚昧~~还请高手解答!! |
|
| 第2楼 lxmxn | 发表于 2006-12-31 01:55 |
| 版主 发帖 4,938 积分 11,386 | |
|
在本论坛搜索“变量延迟”就有你要的答案。 |
|
| 第3楼 verber34 | 发表于 2006-12-31 02:13 |
| 初级用户 发帖 19 积分 52 | |
|
..似懂非懂~~~先看看吧! 谢了!
|
|
| 第4楼 verber34 | 发表于 2006-12-31 02:14 |
| 初级用户 发帖 19 积分 52 | |
|
第二个问题: |管道命令是怎么用的? 常常见到的就是 dir C: |more
这样写为什么不运行: echo C: | dir 哪里错了?? |
|
| 第5楼 trickster | 发表于 2006-12-31 02:31 |
| 初级用户 发帖 33 积分 63 | |
Originally posted by verber34 at 2006-12-30 01:14 PM: 管道"|"的作用是将"|"前面命令的输出做为"|"后面命令的输入,dir命令是显示当前目录,而不能接收你"echo c:"的结果.举个例子: echo y | del a\*.* 等效与 del a\*.* /q |
|
| 第6楼 verber34 | 发表于 2006-12-31 05:18 |
| 初级用户 发帖 19 积分 52 | |
Originally posted by trickster at 2006-12-31 02:31: 我的想法是, dir会接收echo 输出的C: 就会变成 dir C: 显示C盘目录... .... 但它显示是的当前文件的目录!! 对 | 管道还是不懂~~~~ |
|
| 第7楼 lxmxn | 发表于 2006-12-31 07:09 |
| 版主 发帖 4,938 积分 11,386 | |
Originally posted by verber34 at 2006-12-30 16:18: 我是这样理解的: 对于管道符接受echo命令的输出,管道符(|)后面只能接上处理字符的命令,比如find findstr sort等,比如这样是可以的: 但是这样的就不行,比如:echo /ad | dir , echo OK|echo NO_。 至于像echo y|del *.*这样的,是由于del *.*执行后,del询问用户是否删除,此时要你输入y或者n,也可以理解成del *.*接受用户输入的字符串(Y/N),也就是处理(解释)用户输入的字符串。 |
|
| 第8楼 dikex | 发表于 2006-12-31 11:57 |
| 高级用户 发帖 366 积分 788 | |
|
楼主是否打错字了,~改为%,应该是这样的吧
set disk=cdef for /L %%a in (1,1,24) do call echo %%disk%%%a,1%% %%disk%%而不用%disk%的原因是因为使用call,这样echo这个命令在这里就是被call调用的,而%%disk%%%a,1%%都是echo这个命令的执行参数,根据批处理里面的规则,每次使用%都是要加多一个的,这个也可以写出这样,不用call命令,echo就不是被call调用了,%也不用每处多一个 set disk=cdef for /L %%a in (1,1,24) do echo %disk%%a,1% |
|
| 第9楼 lxmxn | 发表于 2006-12-31 13:09 |
| 版主 发帖 4,938 积分 11,386 | |
Originally posted by dikex at 2006-12-30 22:57: 楼主的确是错了,但不是错的你说的地方。下面是演示代码: [ Last edited by lxmxn on 2007-3-15 at 09:33 PM ] |
|
| 第10楼 verber34 | 发表于 2006-12-31 23:04 |
| 初级用户 发帖 19 积分 52 | |
|
楼上的兄弟, 演示代码能说明什么问题? 我运行了,看不懂?
能不能给我一点 汉字说明!! |
|
| 第11楼 weapfe | 发表于 2007-01-01 06:09 |
| 初级用户 发帖 66 积分 144 | |
|
%%#:~%%$,1%%
好像是少了一个冒号吧~~ |
|
| 第12楼 wuyugui | 发表于 2007-01-01 10:09 |
| 初级用户 发帖 8 积分 20 | |
楼主的确是错了,但不是错的你说的地方。下面是演示代码: |
|
| 第13楼 redtek | 发表于 2007-01-01 10:47 |
| 金牌会员 发帖 1,147 积分 2,902 | |
| 第14楼 jackyggt | 发表于 2007-03-16 08:03 |
| 初级用户 发帖 38 积分 76 | |
|
学到了东西
|
|
| 第15楼 youxi01 | 发表于 2007-03-16 10:27 |
| 高级用户 发帖 247 积分 846 来自 湖南==》广东 | |
|
TO 9F(lxmxn):
冒昧的提个建议。 在写批处理代码的时候,可以使用更加清楚,更加明晰的结构。 我们的目的不是要人看不懂,而是尽量要人能够看懂。 |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |