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

问题描述 投票:0回答:2

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

我希望自动编写一个日志文件,其中包含所有这些进度信息以及我键入的文件名(即very_good02)。

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

有任何想法吗? 提前致谢 !

cmd io-redirection
2个回答
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.

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先生可以。

© www.soinside.com 2019 - 2024. All rights reserved.