- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
假设我有一个复合命令(由运算符 &
、&&
和/或 ||
连接的多个简单 CMD 命令)。我用括号将它括起来,然后放置另一个条件执行运算符(&&
或 ||
),然后是例如命令 DIR
。
当解释器决定是否执行我的 DIR
命令时,我的复合命令中哪些简单命令的成功或失败会很重要?
我做了一些实验,似乎只有复合命令中最后一个简单命令的成功或失败对 DIR
的执行具有决定性作用。
但后来我遇到了这个page ,上面写着“使用括号来测试几个命令是否成功”。这意味着解释器以某种方式聚合复合命令中简单命令返回的错误级别,并决定是否(在我的示例中)DIR
被执行。
所以我很困惑......
最佳答案
你原来的理解是正确的,&&
和||
操作符响应最近执行的命令(或操作)
以下对原文提出 claim page you referenced是错误的。
Use parenthesis to test the success of several commands:
(Dir C:\Test1 & Dir C:\Test2) || Echo One or more of the commands failed.
如果 2nd DIR 失败,上面只会回显错误消息。
可以使用 &&
而不是 &
来更正测试,但这是一个简单的逻辑结果,而不是一些附加功能。此外,代码短路 - 如果第一个 DIR 命令失败,则第二个命令将不会执行。
(Dir C:\Test1 && Dir C:\Test2) || echo One of the DIR commands failed.
并且不需要括号。以下给出了完全相同的结果
Dir C:\Test1 && Dir C:\Test2 || echo One of the DIR commands failed.
在我的第一句话中,我说 &&
和 ||
可以响应操作,因为它们响应重定向等操作。
如果重定向失败或 DIR 失败,以下将回显自定义错误消息。请注意,重定向发生在命令执行之前。如果重定向失败,则永远不会执行该命令:
dir c:\test >x:\output.log || echo Redirection or dir failed
自发布此问答以来,引用页面的内容已得到更正:-)
关于windows - 如何||和 && 使用括号括起来的复合命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52724068/
我是一名优秀的程序员,十分优秀!