将参数传递给命令通过C#代码在cmd中运行

时间:2018-07-09 08:53:09

标签: c# .net command-line cmd command-prompt

这是解释。

有一个命令“ admin setserver systempw”,用于设置密码。在cmd中键入该命令后单击“ Enter”,它将提示用户输入。我们必须输入一个字符串,然后单击“ Enter”,这会将该字符串设置为命令中提到的服务器的密码。现在,我必须使用C#代码自动执行该执行。屏幕上应有2个输入文本框和一个按钮。输入的是服务器名称和密码。单击该按钮时,它应执行顶部提到的命令,并将输入的服务器名称和密码与该命令的输入相关联。使用教程,我可以创建一个将运行第一个命令的流程。但是,我无法关联密码。如何将密码与我提到的命令提示相关联。

C:/> admin setserver systempw'单击Enter' 请输入密码:Sai @ 45678'单击Enter'

密码设置成功。

这是我要编写的代码。

        string servername = TextBox1.Text;

        ProcessStartInfo procStartInfo = new ProcessStartInfo("cmd", "/c admin setserver systempw  " + servername );
        procStartInfo.RedirectStandardOutput = true;
        procStartInfo.UseShellExecute = false;

        procStartInfo.CreateNoWindow = true;

        procStartInfo.WorkingDirectory = @"C:/";

        Process proc = new Process();
        proc.StartInfo = procStartInfo;
        proc.Start();

        string result = proc.StandardOutput.ReadToEnd();

        MessageBox.Show("Done! " + result);

如何将第二个文本框值(密码)作为参数关联到进程。如何将密码链接到提示“请输入密码:”的提示。

请解释。

1 个答案:

答案 0 :(得分:0)

您是否尝试过写入标准输入?

procStartInfo.RedirectStandardInput = true;
...
proc.StandardInput.WriteLine(password);