如何隐藏批量输出

时间:2010-01-11 20:58:23

标签: windows batch-file

我正在对批量脚本进行最后的修改,该脚本将本地编辑的网站的内容传输到互联网。

该脚本在控制台窗口中打开,并输出管理员需要查看的大量内容,以防出现问题。但是,在这种情况下,输出将作为电子邮件发送,因此无需显示输出并使不必要地运行更新的用户感到困惑。我只需要显示几行(比如“开始同步......”和“同步完成”)。

有人能想出一种在批处理脚本中停止输出的方法吗?有点“回声”?

一个简单的

my_batch_file > nul

不会削减它,因为正如我所说,我需要展示一些事情。

3 个答案:

答案 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

或者,重定向您想要隐藏的各个部分的输出。