我正在对批量脚本进行最后的修改,该脚本将本地编辑的网站的内容传输到互联网。
该脚本在控制台窗口中打开,并输出管理员需要查看的大量内容,以防出现问题。但是,在这种情况下,输出将作为电子邮件发送,因此无需显示输出并使不必要地运行更新的用户感到困惑。我只需要显示几行(比如“开始同步......”和“同步完成”)。
有人能想出一种在批处理脚本中停止输出的方法吗?有点“回声”?
一个简单的
my_batch_file > nul
不会削减它,因为正如我所说,我需要展示一些事情。
答案 0 :(得分:36)
Windows实际上确实有stdout和stderr的概念。这是一个例子:
test.bat的:
@echo off
echo verbose stuff 1
echo verbose stuff 2
echo verbose stuff 3
echo important stuff! >&2
echo verbose stuff 4
如果将其作为“test.bat
”运行,您将获得完整输出。如果您将其作为“test.bat >nul
”运行,那么您将只获得“重要”输出(任何重定向到stderr,使用>& 2)
答案 1 :(得分:8)
您的批处理脚本可以自行运行
@echo off
if "%1" == "1" goto else
echo start
call %0 1 > nul
echo done
goto done
:else:
echo do stuff
:done:
第二次调用的stdout转到nul
答案 2 :(得分:0)
您可以将需要展示的一些内容写到stderr
而不是stdout
。
或者,重定向您想要隐藏的各个部分的输出。