【发布时间】:2020-02-23 13:36:59
【问题描述】:
在bash,与
exec >file
stdout 的所有输出都将被重定向。
windowscmd.exe中是否有等价物?
== 附言 ==
为什么需要它?
在我们需要支持嵌入式 shell(windows 上的 cmd.exe)的应用程序中,为了获得更好的文本搜索支持,我们决定将命令执行与输出显示分离。
在 bash 下,我们使用 exec >file 来实现这一点,它可以无缝运行。但是我的cmd专业知识不足以在windows下找到等效的命令。
== 编辑 ==
澄清 exec >file 在 bash 中的作用
在 bash 中的 exec >file 之后,文件描述符 1,即其标准输出被重定向到 file。这与mycommand >file 不同。
在前一种情况下,shell本身的stdout被重定向,在其中运行的任何命令的stdout在技术上都没有被重定向,但由于它是shell的子进程,stdout被继承,因此在exec >file之后运行ls, ls 的输出将写入`file。
在后一种情况下,shell 本身的标准输出没有变化,只有子进程的标准输出被重定向(通过 shell,它的父进程)。
总之,我要问的是如何重定向cmd.exe 本身的标准输出,然后像往常一样以交互方式使用cmd.exe,除了cmd.exe 不向控制台写入任何内容,所有输出都写入文件。
因此,下面的方法不是我所追求的
dir >filewrap_several_command_to_batch_file >filewrap_several_command_to_batch_file_and_redirect_inside_then_exit
【问题讨论】:
标签: cmd io-redirection