Windows 批处理文件中的if-else语句格式
我不熟悉批处理脚本,正在尝试执行以下if语句,命令提示符返回一个有关语法的错误。我在互联网上搜索过,似乎无法直接回答如何在批处理文件中执行if-else语句。此声明的正确格式是什么?任何帮助都将不胜感激Windows 批处理文件中的if-else语句格式,windows,shell,batch-file,if-statement,Windows,Shell,Batch File,If Statement,我不熟悉批处理脚本,正在尝试执行以下if语句,命令提示符返回一个有关语法的错误。我在互联网上搜索过,似乎无法直接回答如何在批处理文件中执行if-else语句。此声明的正确格式是什么?任何帮助都将不胜感激 if !cnt! geq 20 ( if !size! lss 5000000(sent>%cd%\EmailSent.txt mailsend1.19.exe -to !email! -from te
if !cnt! geq 20 (
if !size! lss 5000000(sent>%cd%\EmailSent.txt
mailsend1.19.exe -to !email! -from test@gmail.com -ssl -smtp smtp.gmail.com -port 465 -sub "test" -M "The capture quality is not sufficient. Please retake capture." -auth-plain -user "test@gmail.com" -pass) else(sent>%cd%\EmailSent.txt
mailsend1.19.exe -to !email! -from test@gmail.com -ssl -smtp smtp.gmail.com -port 465 -sub "test" -M "The capture quality is ok. Patient good to go." -auth-plain -user "test@gmail.com" -pass )
)
空间意义重大。否则必须在一行上
if "string1" operator "string2" (
dothis
then dothis
after that dothis
) else (
dothat
then dothat
after that dosomethingelse
)
这可能不是最好的代码,但这或多或少就是最好的代码
@echo off
IF %this%==not_this (
echo no match
) ELSE IF %this%==this (
echo matches
) ELSE (
echo Did not find match
)
在运行脚本之前,您可以通过执行设置this=this或设置this=not\u this或设置this=something\u其他操作来测试脚本,以查看不同的结果。我会减少冗余并使用更好的缩进:
Set MailArgs=-to !email! -from test@gmail.com -ssl -smtp smtp.gmail.com -port 465 -sub "test" -auth-plain -user "test@gmail.com" -pass
if !cnt! geq 20 (
if !size! lss 5000000 (
sent>%cd%\EmailSent.txt
mailsend1.19.exe %MailArgs% -M "The capture quality is not sufficient. Please retake capture."
) else (
sent>%cd%\EmailSent.txt
mailsend1.19.exe %MailArgs% -M "The capture quality is ok. Patient good to go."
)
)
我不清楚sent>%cd%\EmailSent.txt应该做什么。我添加这个答案只是因为您的和LotPings代码块都包含不必要的代码。在每个场景中都会发送电子邮件,这意味着您只能发送和写入文件一次 如果cnt!GEq 20 如果大小Lss 5000000 Set _M=捕获质量不够。请重新捕获。 其他的 Set _M=捕获质量正常。病人:好的。 MailSend1.19.exe-发送至!电子邮件-从…起test@gmail.com-ssl-smtp.gmail.com-端口465-子测试-M_M-普通用户身份验证test@gmail.com-通过 Echo已发送>%cd%\EmailSent.txt
是的,我知道。我该如何做多行if-else语句?OP问如果他特别说“if-else”如何做多行else语句@GerhardBarnard字面意思是他问什么是格式化此语句的正确方式?标题if-else语句在批处理文件中格式化我在互联网上搜索过的内容,似乎无法得到直接的答案如何在批处理文件中执行if-else语句以及Magoo答案中的注释是的,我知道。如何执行多行if-else语句?它也应该是echo sent而不是sent>%cd%\EmailSent.txt%
Set MailArgs=-to !email! -from test@gmail.com -ssl -smtp smtp.gmail.com -port 465 -sub "test" -auth-plain -user "test@gmail.com" -pass
if !cnt! geq 20 (
if !size! lss 5000000 (
sent>%cd%\EmailSent.txt
mailsend1.19.exe %MailArgs% -M "The capture quality is not sufficient. Please retake capture."
) else (
sent>%cd%\EmailSent.txt
mailsend1.19.exe %MailArgs% -M "The capture quality is ok. Patient good to go."
)
)