我正在尝试从C#(Windows窗体)运行findstr命令。
我已经在命令提示符中正常尝试了它,效果很好。
string CD = @"P:\FIles";
Process p = new Process();
p.StartInfo = new ProcessStartInfo("findstr.exe");
p.StartInfo.Arguments = "-M -S" + " " + quote + txtSearch.Text + quote + " " + quote+"dummy.txt"+quote + " > " + "C:\\Temp\\results.txt" ;
p.StartInfo.WorkingDirectory = CD;
p.StartInfo.ErrorDialog = true;
p.StartInfo.UseShellExecute = false;
p.Start();
p.WaitForExit();
我想将输出保存到具有特定位置的另一个文本文件中。
如果我能以某种方式将结果直接返回到它自己的形式,并且也许将每一行复制到一个列表框中,那会更好。
答案 0 :(得分:0)
您可以通过阅读“ StandardOutput”流来阅读控制台应用程序的输出。但是,您必须先将StartInfo.RedirectStandardOutput属性设置为“ true”。
在您的情况下:
string CD = @"P:\FIles";
Process p = new Process();
p.StartInfo = new ProcessStartInfo("findstr.exe");
p.StartInfo.Arguments = "-M -S" + " " + quote + txtSearch.Text + quote + " " + quote+"dummy.txt"+quote + " > " + "C:\\Temp\\results.txt" ;
p.StartInfo.WorkingDirectory = CD;
p.StartInfo.ErrorDialog = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
p.WaitForExit();
string sTest = p.StandardOutput.ReadToEnd();