【发布时间】:2017-08-31 09:30:39
【问题描述】:
我正在尝试通过 C# 代码在除控制台窗口之外的 cmd 窗口上执行命令(在 Ctrl+F5 上打开)。在执行命令时,它会询问用户名和密码。现在,我应该如何一一传递用户名和密码。
并且在完成过程后,它会生成 2 行输出,这些输出将在 c# 代码中读取,以供以后使用。到目前为止编写的更新代码如下:
using System;
using System.IO;
using System.Diagnostics;
namespace ios
{
class Program
{
static void Main(string[] args)
{
ProcessStartInfo procStartInfo = new ProcessStartInfo();
procStartInfo.FileName = "cmd.exe";
procStartInfo.Arguments = "/C java -jar Reporter.jar p=Reporter.properties m=Normal Sales.viewToken";
procStartInfo.UseShellExecute = false;
procStartInfo.RedirectStandardOutput = true;
procStartInfo.RedirectStandardError = true;
procStartInfo.RedirectStandardInput = true;
using (Process process = new Process())
{
process.StartInfo = procStartInfo;
process.ErrorDataReceived += new DataReceivedEventHandler(OutputHandler);
process.Start();
StreamWriter streamWriter = process.StandardInput;
streamWriter.WriteLine("myusername");
streamWriter.WriteLine("password");
streamWriter.Close();
process.BeginErrorReadLine();
process.WaitForExit();
}
}
static void OutputHandler(object sendingProcess, DataReceivedEventArgs outLine)
{
Console.WriteLine("Output shown : " + outLine.Data);
if (outLine.Data != null && outLine.Data.Contains("AccessToken"))
{
Console.WriteLine("Line Echoed : " + outLine.Data);
}
if (outLine.Data != null && outLine.Data.Contains("Expiration Date"))
{
Console.WriteLine("Line Echoed : " + outLine.Data);
}
}
}
}
现在,它可以与其他命令完美配合。但是我显示的命令(java -jar Reporter.jar p=Reporter.properties m=Normal Sales.viewToken)没有按预期输入。它在执行此程序时不显示任何输出。我如何能够传递输入并存储输出?
【问题讨论】:
标签: c# windows visual-studio cmd