首页 > 解决方案 > 尝试包装 CALL 函数失败

问题描述

我想要一个稍微增强的 CALL 函数包装器,它可以更改 cmd.exe 窗口标题,以便我知道它在做什么,并将输出写入日志文件。我的 mycall.bat 文件如下所示:

title %1
call %1 > %1.log

if %ERRORLEVEL% EQU 0 GOTO :SUCCESS
if %ERRORLEVEL% NEQ 0 GOTO :ERROR

:SUCCESS
@ECHO "   MYCALL %1: Completed successfully."
EXIT /B 0

:ERROR
@ECHO "   MYCALL %1: An ERROR has occurred, errorlevel: %ERRORLEVEL%"
EXIT /B %ERRORLEVEL%

主调用者文件 TestCall.bat 是这样的:

mycall test1.bat
mycall test2.bat
mycall test3.bat

这些文件中的每一个,test1.bat、test2.bat、test3.bat 只有一行,即第一行是 ECHO "Test1",第二个是 ECHO "Test2",依此类推。

当我从 cmd.exe 窗口运行 TestCall.bat 文件时,我只看到“Test1”回显;其他文件似乎从未运行,屏幕上没有任何内容,没有创建日志文件。我的感觉是这个问题是一些错误处理问题,但不应该有。TestCall.bat 第一次调用成功,然后似乎停止了——我确实看到了“MYCALL test1.bat:成功完成”。信息。

也许我已经盯着它太久了,我错过了一些明显的东西 - 任何想法都会受到赞赏。

标签: windowsbatch-filecmdcall

解决方案


推荐阅读