Batch Echo Style: 两条语句在同一行
Batch Echo Style: two statements into same line
我有一些代码 运行,但我想让它变得更好。
目前我的代码是:
@echo off
echo Starting Program 1 ... >> %log%
call Program1.cmd
if %ERRORLEVEL%==1 (
echo Error. >> %log%
) else (
echo Success. >> %log%
)
我想将这两个回声保留在代码中,因为出于调试原因我发现它更好。但是,我不喜欢它有两条输出线。我需要如何更改代码才能获得此输出:
Starting Program 1 ... Success
感谢您的帮助,
彼得
您必须将第一条消息存储到一个变量中,然后在最后一次重定向到文件时使用它。
要使用您的代码,它看起来像这样:
@echo off
set "log=C:\t\so\batch\log.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:\t\so\batch\log.log"
echo | set /p message="Starting Program 1 ... " >> %log%
call Program1.cmd
if %ERRORLEVEL%==1 (
echo Error. >> %log%
) else (
echo Success. >> %log%
)
/p
开关:
The /P switch allows you to set the value of a variable to a line of
input entered by the user. Displays the specified promptString before
reading the line of input. The promptString can be empty.
注意:这里的消息只是一个虚拟变量。
dbehham 就此主题给出了一个复杂的答案。
你可以误用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
echo Starting Program 1 ... >> %log%
call Program1.cmd
if %ERRORLEVEL%==1 (
echo Error. >> %log%
) else (
echo Success. >> %log%
)
我想将这两个回声保留在代码中,因为出于调试原因我发现它更好。但是,我不喜欢它有两条输出线。我需要如何更改代码才能获得此输出:
Starting Program 1 ... Success
感谢您的帮助, 彼得
您必须将第一条消息存储到一个变量中,然后在最后一次重定向到文件时使用它。
要使用您的代码,它看起来像这样:
@echo off
set "log=C:\t\so\batch\log.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:\t\so\batch\log.log"
echo | set /p message="Starting Program 1 ... " >> %log%
call Program1.cmd
if %ERRORLEVEL%==1 (
echo Error. >> %log%
) else (
echo Success. >> %log%
)
/p
开关:
The /P switch allows you to set the value of a variable to a line of input entered by the user. Displays the specified promptString before reading the line of input. The promptString can be empty.
注意:这里的消息只是一个虚拟变量。
dbehham 就此主题给出了一个复杂的答案。
你可以误用set /p
命令来输出没有换行的行。
@echo off
<nul set /p "=Starting Program 1 ..." >> %log%
call Program1.cmd
if %ERRORLEVEL%==1 (
echo Error. >> %log%
) else (
echo Success. >> %log%
)