我是批处理脚本的新手,但借鉴了我对Bash的经验,试图理解事物。我是错误级别检查,如果%ERRORLEVEL%== 0,我希望它回显一条消息然后递增一个计数器变量,ELSE回显另一条消息并退出并退出代码。
我所做的事情的例子:
@echo off
SET counter=0
dir /a
SET RC=%ERRORLEVEL%
IF %RC% == 0 ECHO [INFO] - Command executed successfully. SET /A counter=counter+1 ELSE ECHO [ERROR] - Something went wrong here EXIT /B 99
上面的例子没有按照我的预期运作。 IF-ELSE语句在一行上,我得到的输出是
命令执行成功。 SET / A计数器=计数器+ 1
当我在()中包含echo和set命令时,它会抱怨
(此时设置意外
那么,我怎么能在TRUE上回复一条消息并将计数器递增1;并且在false时退出具有特定%ERRORLEVEL%代码的脚本?
答案 0 :(得分:1)
我相信这就是你要找的东西。
@echo off
SET counter=0
dir /a
SET RC=%ERRORLEVEL%
IF %RC% == 0 (ECHO [INFO] - Command executed successfully. & (SET /A counter=counter+1)) ELSE (ECHO [ERROR] - Something went wrong here & (EXIT /B 99))
Counter
,如果成功执行,则值为1。此外,使用dir /a
需要/a
之后的属性,例如/a:h
隐藏文件。请dir /?
获取更多属性。
答案 1 :(得分:0)
您可以处理将这些操作放在代码块()
中的各种操作。
您可以使用条件&&
和||
运算符:
dir /a && (
echo success
SET /A counter+=1
) || echo failed
或:
IF %RC%==0 (
ECHO [INFO] - Command executed successfully.
SET /A counter=counter+1
) ELSE (
ECHO [ERROR] - Something went wrong here
EXIT /B 9
)