【问题标题】:How do I keep visual output on a bat file after setting up an output log?设置输出日志后,如何在 bat 文件中保留视觉输出?
【发布时间】:2015-07-09 17:51:18
【问题描述】:

我正在运行一个 bat 文件来进行备份。我已将其设置为通过将其添加到 bat 文件的顶部来创建进程的日志文件..(我从本网站的答案中得到)

@Echo off
SET LOGFILE=MyLogFile.txt
call :Logit >> %LOGFILE% 
exit /b 0

现在,我希望 bat 文件以与之前相同的方式在视觉上运行。我需要最终用户能够看到它在做什么并在 bat 文件的菜单中做出选择。但是,这个创建日志的代码显然会将所有文本重定向到日志文件。

所以,我得到了一个日志文件,它以一个菜单开始,要求用户选择要做什么,然后什么都没有。

我该怎么做才能获得我的日志文件以及用户的屏幕输出?

提前致谢!

【问题讨论】:

  • 如果您更喜欢没有额外实用程序的纯批处理解决方案,请参阅here。不像tee 实用程序那么优雅(互联网上有很多),而是原生的。

标签: batch-file


【解决方案1】:

试试这样:

@Echo off
SET LOGFILE=MyLogFile.txt
call :Logit
call :Logit >> %LOGFILE% 
exit /b 0

:Logit
ping www.google.com

或者喜欢这个:

@Echo off
SET LOGFILE=MyLogFile.txt
call :Logit & call :Logit >> %LOGFILE% & Start %LOGFILE%
exit /b 0

:Logit
ping www.google.com

【讨论】:

  • 感谢您的快速回答!这几乎行得通。问题是我正在通过 bat 文件运行备份。如果我运行备份,然后运行日志,它不会给我一个准确的日志,因为它没有发送任何已经备份的东西。它必须运行两次才能获得不理想的最终结果。有什么办法让它们并排运行吗?复制一个文件,添加到日志,然后到下一个文件?
  • 那么取决于如何编写你的函数 Logit ?您可以编辑您的第一篇文章并添加备份代码吗?
【解决方案2】:

使用此实用程序 https://code.google.com/p/wintee/

(Brian Rasmussen 对 16 年前提出的同一个问题的回答,请先谷歌...) Displaying Windows command prompt output and redirecting it to a file

Hackoo 的回答会调用 Logit 两次,这显然不是你想要的。

另一种解决方案是编辑 .bat 文件,使其仅将所需内容写入日志文件,并在屏幕上显示用户需要的内容。 (这两组可能会重叠,所以在这种情况下,如果只是回显,则回显两次,一次到日志文件,一次到屏幕。)

【讨论】:

  • 你不认为我先用谷歌搜索了吗?不是每个谷歌搜索都会引导你找到你想要的。有时你仍然需要一些帮助。还有,谢谢。我去看看
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-13
相关资源
最近更新 更多