好友
阅读权限10
听众
最后登录1970-1-1
|
C#中调用CMD执行命令,为什么就是正常输出,并不是错误,反而在StandardOutput获取到空字符串,而在StandardError中获取正常的结果??太扯了这
安装过java的朋友都知道,在CMD下执行 java -version 打印如下:
java version "1.8.0_301"
Java(TM) SE Runtime Environment (build 1.8.0_301-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)
然而我用C#代码,调用CMD执行这个命令,结果 standardOutputString 是空字符串,standardErrorString 是上面的3行,这也太扯了吧。。。。换了4台电脑,全都如此,C# 的bug??
Process process = new Process();
process.StartInfo.FileName = "java";
process.StartInfo.Arguments = "-version";
// 不弹出CMD窗口而是静默执行
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.Start();
process.WaitForExit();
//
string standardOutputString = process.StandardOutput.ReadToEnd();
string standardErrorString = process.StandardError.ReadToEnd(); |
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|