我在这里有一个问题。
例如,我有这个名为very_good02.bat
的bat文件
当我运行它时,它将在命令提示符下显示一些进度信息。
我希望自动编写一个日志文件,其中包含所有这些进度信息以及我键入的文件名(即very_good02)。
我试着像这样跑:very_good02.bat > very_good02log.txt
进程在后台运行,我无法在命令提示符下看到它们。
有任何想法吗? 提前致谢 !
对不起,我没有足够的代表发表评论,所以我必须回答。我的第一个评论中的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.
如果我理解正确,那么您正在寻找的方法是将管道“发送”到控制台和日志文件。
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先生可以。