我可以发送一些文本到Windows下的活动进程的STDIN?

我在网上search了这个问题,并登陆到服务器故障:

我可以发送一些文本到屏幕会话中运行的活动进程的STDIN吗?

看起来好像在Linux下实现这个很容易。 但我需要一个Win32命令提示符。

背景:我有一个应用程序轮询STDIN,如果我按下X键,应用程序终止。 现在,我想做一些自动testing,testing应用程序,然后closures它。

注意 :因为我正在调查在我的应用程序closures期间出现的问题,所以只是杀死进程不是一个选项。

.NET框架的Process和ProcessStartInfo类可以用来创建和控制一个过程。 由于Windows PowerShell可用于实例化.NET对象,因此可以从PowerShell中控制进程几乎每个方面的功能。

下面介绍如何将dir命令发送到cmd.exe进程(确保将其封装在.ps1文件中,然后执行该脚本):

 $psi = New-Object System.Diagnostics.ProcessStartInfo; $psi.FileName = "cmd.exe"; #process file $psi.UseShellExecute = $false; #start the process from it's own executable file $psi.RedirectStandardInput = $true; #enable the process to read from standard input $p = [System.Diagnostics.Process]::Start($psi); Start-Sleep -s 2 #wait 2 seconds so that the process can be up and running $p.StandardInput.WriteLine("dir"); #StandardInput property of the Process is a .NET StreamWriter object