命令提示符自动写入日志文件

时间:2019-03-03 16:23:41

标签: cmd io-redirection

我在这里有一个问题。
例如,我有一个名为very_good02.bat的蝙蝠文件
当我运行它时,它将在命令提示符下显示一些进度信息。

我希望自动编写一个包含所有此进度信息的日志文件,并带有我键入的文件名(这是very_good02)。

我试图像这样运行它:very_good02.bat > very_good02log.txt
该进程在后台运行,在命令提示符下看不到它们。

有什么想法吗?
预先感谢!

2 个答案:

答案 0 :(得分:0)

抱歉,我的代表没有足够的评论,所以我必须回答。 我的第一个评论中的link回答了您的问题,即使OP要求将DIR命令的输出重定向到控制台和文件。

我认为您想要的是同一件事。简短的回答:没有...不是没有技巧,也不是纯BATCH脚本。以下是链接的一部分:

No, you can't with pure redirection.
But with some tricks (like tee.bat) you can.

I try to explain the redirection a bit.

You redirect one of the ten streams with > file or < file
It is unimportant, if the redirection is before or after the command, so these two lines are nearly the same.

答案 1 :(得分:0)

如果我的理解正确,那么您正在寻找的是一种“准备”通往控制台和日志文件的管道的方法。

tee命令在UNIX / Linux中已经存在很长时间了。 Windows cmd.exe中没有这样的东西。但是,PowerShell确实具有Tee-Object。在PowerShell命令提示符下,使用help Tee-Object -full获取更多信息。

powershell -NoLogo -NoProfile "& .\very_good02.bat | Tee-Object -FilePath 'C:\src\t\very_good02.log'"

自然,如果您的整个脚本使用PowerShell而不使用cmd脚本语言,则这样做会更容易。您不必使用PowerShell,但这是Microsoft明确说明的方向。

提醒我,实际上可以在cmd .bat文件脚本中完成此操作。不容易,但是可以做到。 https://www.dostips.com/forum/viewtopic.php?p=32615#p32615如果任何人都可以在.bat文件脚本中执行此操作,那么Benham先生可以。