找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 28230|回复: 7

[其他] 命令连接符连接的3个或3个以上的命令是怎样执行的?

[复制链接]
发表于 2011-6-8 09:00:30 | 显示全部楼层 |阅读模式
这个命令意思是 如果上一段命令正确,将不在继续执行下一段命令。。但是我想请问的是如果代码由3个或者3个以上的命令组成,在第一段命令后加入||,代码是否会执行第三段命令,说的不是很清楚,用代码表示
  1. type a.txt || echo 没有这个文件 &paue &exit
复制代码
我自己运行了代码,发当有显示a.txt这个文件成功的时候,仍然会执行&pause&exit 命令,请懂的便宜指教一下

没仔细看版规实在抱歉。。。
发表于 2011-6-8 10:13:38 | 显示全部楼层
本帖最后由 hucuibai 于 2011-6-8 10:15 编辑

type a.txt || echo 没有这个文件 &paue &exit
等于
type a.txt || echo 没有这个文件
paue
exit
这样你应该看的明白吧

type a.txt ||( echo 没有这个文件 &paue &exit)
这样就不会执行后面的语句
 楼主| 发表于 2011-6-8 11:35:54 | 显示全部楼层
懂了。谢谢楼上的朋友指教。
发表于 2011-6-8 12:07:28 | 显示全部楼层
本帖最后由 applba 于 2011-6-8 12:11 编辑

根据微软的说法,& && 和||都是命令分隔符,而且&&和||还有逻辑判断作用。

比如 type a.txt || echo 没有这个文件 &&paue &exit

首先上面的语句被切割为 type a.txt 、 echo 没有这个文件、paue 、exit 四个部分。
“ type a.txt ”执行后遇到||,会检查errorleve ,如果不为0就执行后面的“echo 没有这个文件”。
不管有没有执行 “echo 没有这个文件”,遇到后面的&&, 还会检查errorlevel,如果为0就继续后面的命令。
&不判断errorlevel,仅相当于连接符。

总之这些符号分割一条组合命令,每个符号都是按顺序处理的,以决定是否执行后面被分割的命令。


如果你要改变这个从左往右的逐个处理,可以使用括号。
发表于 2011-6-8 18:02:18 | 显示全部楼层
paue 应为 pause
发表于 2011-6-8 19:26:05 | 显示全部楼层
没有即时发现这个标题违规的帖子,是我的失职,但是楼上两位为什么明知论坛严打违规标题仍然回复呢?
对标题严格把关是从长远的角度来考虑,今天放过一个违规标题,天长日久之后搜索将如海里捞针。
处理时遵循版规,对事不对人,希望大家理解和支持。

建议楼主将此贴即时改名,否则按版规中的条例,三日之后将被移至回收站...
发表于 2011-6-9 16:40:51 | 显示全部楼层
这帖子标题确实是笼统了,我一般是有贴就点的,也没注意看标题了,sorry,下次注意。
 楼主| 发表于 2011-6-11 21:03:53 | 显示全部楼层
4# applba


感谢您的帮助。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 18:49 , Processed in 0.021587 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表