重定向等待用户输入的命令输出



是否可以重定向等待用户输入的命令输出(无论是否重定向该输入(,并且事先不知道将请求用户输入?

即在使用 Powerhell 运行此命令时.exe:

chkdsk C: /F /R | Tee -var test

输出为:

CHKDSK ne peut pas s'exécuter parce que le volume est utilisé par un autre processus.Voulez-vous que ce volume soit

而不是:

CHKDSK ne peut pas s'exécuter parce que le volume est utilisé par un autre processus.Voulez-vous que ce volume soit Vérifié au prochain redémarrage du système ?(O/N(

使用 cmd.exe,当将输出重定向到文件时,它只是等待用户输入而不显示任何内容。

从交互式控制台应用程序捕获输出是有问题的。

第一个是由控制台应用程序的性质引起的:提示用户输入的行往往在末尾没有换行符,因为它们依赖于用户输入的回显换行符来完成该行。您将在输出文件中看到的效果是,具有用户输入的行将与下一行连接。

其次,PowerShell 将在管道中执行基于行的缓冲,因此在输入输入之前,你不会看到任何部分行(提示用户输入的行(的输出。据我所知,PowerShell 没有提供配置它的方法,你对此无能为力。

成绩单

最好的解决方案可能是使用成绩单。它捕获stdinstdout,使文件看起来像您的屏幕。

要将成绩单存储到output.txt

Start-Transcript output.txt
chkdsk C: /F /R
Stop-Transcript

相关内容

  • 没有找到相关文章

最新更新