我有一些代码正在运行,我想让它变得更好。
目前我的代码是:
@echo off
echo Starting Program 1 ... >> %log%
call Program1.cmd
if %ERRORLEVEL%==1 (
echo Error. >> %log%
) else (
echo Success. >> %log%
)
我想将两个回显保留在代码中,因为出于调试原因,我发现它更好。但是,我不喜欢它的两条输出线。我需要如何更改代码才能获得此输出:
启动程序 1 ...成功
谢谢你的帮助, 彼得
您可以误用set /p
命令来输出不换行的行。
@echo off
<nul set /p "=Starting Program 1 ..." >> %log%
call Program1.cmd
if %ERRORLEVEL%==1 (
echo Error. >> %log%
) else (
echo Success. >> %log%
)
您必须将第一条消息存储到变量中,然后在最后一次重定向到文件中使用它。
要使用您的代码,它看起来像这样:
@echo off
set "log=C:tsobatchlog.log"
set "message=Starting Program 1 ... "
call Program1.cmd
if %ERRORLEVEL%==1 (
echo %message% Error. >> %log%
) else (
echo %message% Success. >> %log%
)
编辑在上面的脚本中,如果被调用的脚本出现严重问题,您可能会丢失日志记录信息。
你可以这样做:
@echo off
set "log=C:tsobatchlog.log"
echo | set /p message="Starting Program 1 ... " >> %log%
call Program1.cmd
if %ERRORLEVEL%==1 (
echo Error. >> %log%
) else (
echo Success. >> %log%
)
/p
开关:
/P 开关允许您将变量的值设置为 用户输入的输入。 在之前显示指定的提示字符串 读取输入行。 提示字符串可以为空。
注意:这里的消息只是一个虚拟变量。
关于这个话题,dbehham有一个复杂的答案。