从Windows命令提示符发送stdin到进程

时间:2010-05-06 06:12:14

标签: windows console stdin

在Windows中我有控制台程序在后台运行,控制台隐藏。无论如何直接输入到程序控制台?我希望能够做到这样的事情:

回音Y | the_running_process_here

将Y发送到进程'stdin。

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您需要将某些命令的输出发送到另一个命令的输入。您可以使用管道“|”操作员。

http://commandwindows.com/command1.htm

这是命令提示符选项的链接。希望有所帮助。

答案 1 :(得分:0)

据我所知,基本的cmd命令是不可能的。 PowerShell功能更强大,并且可以从Windows使用.NET框架。

我发现此PowerShell脚本声称将文本传递到已打开的cmd

$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

来源:https://stackoverflow.com/a/16100200/10588376

您必须以.ps1结尾的脚本安全并运行它。

将其用作cmd命令的一种解决方法是使其接受参数,以便例如可以使用yourScript.ps1 procced_pid arguments来运行它。

标准窗口cmd太受限制,无法单独完成此任务。