如何正确使用多个||,&,&&

时间:2017-09-22 18:39:05

标签: windows batch-file cmd syntax command-prompt

我有这行代码,我对如何工作感到困惑。我怎么相信它会运行,而这不是我想要的,&& goto continue只会在电子邮件失败的情况下运行,因为它是最近的代码块。

我想从这一行得到的是测试.zip的完整性,如果成功执行goto continue,如果不成功则发送电子邮件(blat)然后退出。

"c:\Program Files\7-Zip\7z.exe" t %ZIPFILE% | FIND "Everything is Ok" || blat -to email@domain.com -server mail.protection.outlook.com -f anotheremail@domain.com -subject "Backup integrity check failed" -body "failed" && goto continue

也许我需要的是if>但是,我希望确保没有办法只使用条件执行来执行此操作。

谢谢!

1 个答案:

答案 0 :(得分:3)

From Windows XP documentation:

<强>&安培;

  

用法:command1&amp; command2

     

摘要:用于在一个命令行上分隔多个命令。

<强>&安培;&安培;

  

用法:command1&amp;&amp; command2

     

摘要:仅在command2成功时才使用command1

<强> ||

  

用法:command1 || command2

     

摘要:仅在command2失败时才使用command1

要实现您的目标,只需交换条件代码:

"c:\Program Files\7-Zip\7z.exe" t %ZIPFILE% | FIND "Everything is Ok" && goto continue || blat -to email@domain.com -server mail.protection.outlook.com -f anotheremail@domain.com -subject "Backup integrity check failed" -body "failed"

这样,如果成功,它将继续以其他方式发送电子邮件。