【发布时间】:2011-08-27 10:05:45
【问题描述】:
我尝试使用以下代码调用进程(控制台应用程序):
ProcessStartInfo pi = new ProcessStartInfo();
pi.UseShellExecute = false;
pi.RedirectStandardOutput = true;
pi.CreateNoWindow = true;
pi.FileName = @"C:\fakepath\go.exe";
pi.Arguments = "FOO BAA";
Process p = Process.Start(pi);
StreamReader streamReader = p.StandardOutput;
char[] buf = new char[256];
string line = string.Empty;
int count;
while ((count = streamReader.Read(buf, 0, 256)) > 0)
{
line += new String(buf, 0, count);
}
它仅适用于某些情况。
不起作用的文件大小为 1.30 mb,
我不知道这是否是它无法正常工作的原因。
line 返回一个空字符串。
我希望这很清楚。
有人可以指出我的错误吗?提前致谢。
【问题讨论】:
-
失败的表现形式是什么?
-
对于这种情况,返回一个空字符串。我用 PHP 的 exec() 函数(调用相同的进程)进行了测试,工作正常。
-
不懂 C#,这不是问题,但在包含
BAA的行中似乎存在不平衡的"。 -
对不起,因为我在这里编辑了文本框中的一些变量。固定的。但代码仍然无法正常工作。
-
如果您手动对该文件执行命令,您会得到非空结果吗?另外,您是否可以编辑您的问题以准确添加您遇到的失败,而不是将其留在 cmets 中?