Batch file 批处理文件的条件IF函数
首先,这是一个围绕另一个问题的工作,但为了不使这个问题复杂化,我将不讨论最初的方法是什么 现在我尝试使用批处理文件来:Batch file 批处理文件的条件IF函数,batch-file,Batch File,首先,这是一个围绕另一个问题的工作,但为了不使这个问题复杂化,我将不讨论最初的方法是什么 现在我尝试使用批处理文件来: 读取一个文本日志文件 循环到文件的倒数第二行 然后做一个条件检查,看看最后一个条目是确认某个进程已成功完成,还是另一条消息表明它没有成功完成 根据上面步骤3的结果,返回值0表示通过,返回值1表示失败,以便SSI可以解释结果 文本文件的名称作为参数输入批处理文件。 除了当我试图包含一个IF语句时,一切似乎都正常工作,此时它不会返回任何结果 谁能告诉我我做错了什么在这里,我们试图遵
@ECHO off
setlocal EnableDelayedExpansion
for /f "delims=" %%x in (%1) do (
set "previous=!last!"
set "last=%%x"
)
IF !last! == "EXPORT completed successfully" ECHO 1 ELSE ECHO 0
如果最后一行改为ECHO!最后!它正确返回成功完成的字符串导出。我试过上面的代码,没有引号,但没有成功
任何帮助都将不胜感激,因为我以前从未使用过batch
谢谢你离得很近!注意,我在IF和ELSE子句周围添加了括号。我还为你的
上一篇
加了引号
最后,请记住,批处理中IF…ELSE周围的空格实际上很重要-有关详细信息,请参阅
@ECHO off
setlocal EnableDelayedExpansion
for /f "delims=" %%x in (%1) do (
set "previous=!last!"
set "last=%%x"
)
IF "!last!" == "EXPORT completed successfully" (
ECHO 1
) ELSE (
ECHO 0
)
ECHO !last!
我认为,当您使用
set
命令在命令行中设置值时,应该使用%
引用此变量。例如:
@echo off
cls
:loop
rem DO SOMETHING
set /p userinp=Repeat (y,n)?
if "%userinp%" == "y" (goto loop)
pause
此批处理执行某些操作,然后询问用户是否需要使用
userinp
变量重复此过程。希望这有帮助。如果需要,请更换!最后通过IF“!last!”
(请记住,比较=
周围的位部分,包括任何周围的”
),并将()
放在ECHO 1
周围(以便命令解释器知道在哪里检查else
关键字),就是这样。。。