Skip to content

Instantly share code, notes, and snippets.

@Warm-rain
Created April 11, 2019 04:24
Show Gist options
  • Save Warm-rain/eb4740bd4452c6399cb371cee30cedc9 to your computer and use it in GitHub Desktop.
Save Warm-rain/eb4740bd4452c6399cb371cee30cedc9 to your computer and use it in GitHub Desktop.
&,&&, |,|| 
命令很简单,新建个bat文件,将之前三条命令copy过来就完事,关键是怎么保证每条命令都执行,在网上查了下,说可以用&&连接,试了下,还是只执行了第一条命令,后来组长调了下,将bat文件改为 start 命令1 start 命令2......的格式 就成功了。
据了解,是因为我此次执行的命令是三个没有关联的命令,直接start就行了,网上查的用&,&&,||连接的情况适用于多条有关联的命令一起执行的情况,如下:
 命令1 & 命令2 & 命令3 ... (无论前面命令是否故障,照样执行后面)   
 命令1 && 命令2 && 命令3....(仅当前面命令成功时,才执行后面)   
 命令1 || 命令2 || 命令3.... (仅当前面命令失败时.才执行后面)
&& 和 || 属于逻辑运算符号
& 和 | 属于位操作符
一、&&和&的区别
1.1 相同点:
    &和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
1.2不同点:
1.2.1. &&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式。
例如,对于if(str != null && !str.equals(“”))表达式。
当str为null时,后面的表达式不会执行,所以不会出现NullPointerException
如果将&&改为&,则会抛出NullPointerException异常。
再比如,If(x==33 & ++y>0) y会增长,If(x==33 && ++y>0)不会增长
1.2.2.&作为为运算时,&是按位与操作,参加运算的两个数据按照二进制位进行“与”运算。
如果两个相应的二进制位都为1,那该位的结果值就是1,否则为0,即0&0=0,0&1=0,1&1=1,1&0=0。
比如:3&5并不等于8,应该按位与,00000011&00000001=00000001。
备注:这道题先说两者的共同点,再说出&&和&的特殊之处,并列举一些经典的例子来表明自己理解透彻深入、实际经验丰富。
 --------------------------------------------------------------------------------------------------------------------
二、|| 和 | 的区别
2.1 相同点 :当二者表示或的时候,二者都true则true,否则为false。
2.2 不同点:
2.2.1 ||  也存在短路的问题,当前者为true时,则不会判断后面的表达(与上面的&&类似)
2.2.2 |是按位或操作,参加运算的两个数据按照二进制位进行“或”运算,如果两个相应的二进制位中只要有一个为1,则该位结果就是1,即为0|1=1、1|1=1、1|0=1、0|0=0。
||是逻辑或运算符,直接看意思,a||b,若a、b中有一个为真,则a||b结果为真。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment