将文本框输入添加到现有的StartInfo.Arguments

时间:2013-04-15 14:51:41

标签: c# arguments

我有一段我想要修复的代码:

System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
//p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = false; // This line will not create any new window for command prompt.
p.StartInfo.FileName = @"C:\Program Files (x86)\Citrix\System32\dscheck.exe";
p.StartInfo.Arguments = "/full groups /clean";
p.StartInfo.Arguments = argTextBox.Text;
p.Start();
System.Threading.Thread.Sleep(50);
System.Windows.Forms.SendKeys.Send("y");
System.Threading.Thread.Sleep(50);
string s = p.StandardOutput.ReadToEnd();
MessageBox.Show(s); //Shows a Popup of the output from Dscheck
//String s = p.StandardOutput.ReadToEnd();

这是我的问题:

p.StartInfo.Arguments = "/full groups /clean";
p.StartInfo.Arguments = argTextBox.Text;

我正在尝试传递tscheck.exe /full /groups /clean {UID} - UID 已在argTextBox中输入,但它无效。它写着:p.StartInfo.Arguments = "/full groups /clean";并获取argTextBox并且不会放置任何内容。

如何将文本框输入添加到现有参数中?

3 个答案:

答案 0 :(得分:1)

p.StartInfo.Arguments = "/full groups /clean " + argTextBox.Text;

不是从文本框中指定文本,而是将其附加到现有参数。

答案 1 :(得分:0)

只需追加当前参数参数的末尾(当然是空格分隔符)

    p.StartInfo.Arguments = "/full groups /clean " + argTextBox.Text;
    p.Start();

答案 2 :(得分:0)

在第二个作业中,你要替换之前指定的值,替换这些行:

p.StartInfo.Arguments = "/full groups /clean";
p.StartInfo.Arguments = argTextBox.Text;

使用:

p.StartInfo.Arguments = String.Format("/full groups /clean {0}", argTextBox.Text);