我正在尝试通过.cmd文件自动化我使用测试套件创建的程序. 我可以通过%errorlevel%获取我运行的返回代码的程序. 我的程序对每种类型的错误都有一定的返回码. 例如: 1 – 意味着因为
我可以通过%errorlevel%获取我运行的返回代码的程序.
我的程序对每种类型的错误都有一定的返回码.
例如:
1 – 意味着因为这样的原因而失败
2 – 由于某些其他原因意味着失败
…
echo FAILED:测试用例失败,错误级别:%errorlevel%>> TestSuite1Log.txt
相反,我想以某种方式说:
echo FAILED:测试用例失败,错误原因:lookupError(%errorlevel%)>> TestSuite1Log.txt
这是否可以使用.bat文件?或者我是否必须转向像python / perl这样的脚本语言?
您可以使用ENABLEDELAYEDEXPANSION选项完美地完成此操作.这可以让你使用!作为在%之后评估的变量标记.REM Turn on Delayed Expansion SETLOCAL ENABLEDELAYEDEXPANSION REM Define messages as variables with the ERRORLEVEL on the end of the name SET MESSAGE0=Everything is fine SET MESSAGE1=Failed for such and such a reason SET MESSAGE2=Failed for some other reason REM Set ERRORLEVEL - or run command here SET ERRORLEVEL=2 REM Print the message corresponding to the ERRORLEVEL ECHO !MESSAGE%ERRORLEVEL%!
在命令提示符下键入HELP SETLOCAL和HELP SET以获取有关延迟扩展的更多信息.