我有一段我想要修复的代码:
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并且不会放置任何内容。
如何将文本框输入添加到现有参数中?
答案 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);