Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Process.StandardOutput.ReadToEnd()-输出为空。从cmd运行相同的应用程序-输出正常_C#_Ironpython_Iar - Fatal编程技术网

C# Process.StandardOutput.ReadToEnd()-输出为空。从cmd运行相同的应用程序-输出正常

C# Process.StandardOutput.ReadToEnd()-输出为空。从cmd运行相同的应用程序-输出正常,c#,ironpython,iar,C#,Ironpython,Iar,我试图在使用IarBuild.exe实用程序(IARcmd实用程序来构建项目)构建项目时获取输出 我正在使用一个简单的IronPython脚本: process = System.Diagnostics.Process() process.StartInfo.FileName = path_process process.StartInfo.Arguments = command_line_arguments process.StartInfo.RedirectS

我试图在使用
IarBuild.exe
实用程序(
IAR
cmd实用程序来构建项目)构建项目时获取输出 我正在使用一个简单的
IronPython
脚本:

    process = System.Diagnostics.Process()
    process.StartInfo.FileName = path_process
    process.StartInfo.Arguments = command_line_arguments
    process.StartInfo.RedirectStandardError = True
    process.StartInfo.RedirectStandardOutput = True
    process.StartInfo.RedirectStandardInput = True
    process.StartInfo.UseShellExecute = False
    process.StartInfo.CreateNoWindow = True
    process.Start()
    output = process.StandardOutput.ReadToEnd()
    process.WaitForExit()

    return {"Exit code": process.ExitCode, "Output": output}
在我的例子中,“输出”总是空的(“StandardError”也是空的)。 如果我尝试在命令行(“cmd.exe”)中执行相同的应用程序,则会成功显示输出

问题可能与某些操作系统设置(或其他安装的应用程序所做的更改)有关,因为当我尝试在其他虚拟机(相同的操作系统)上执行相同的脚本时,
进程.StandardOutput.ReadToEnd()
正常


当您传递参数时,使用“subprocess.call()”方法而不是“System.Diagnostics.Process()”时,我得到了相同的结果。您似乎传递了三个参数:

1) C:\test\test.ewp 2) -生成调试 3) -日志信息 但它们被视为6个参数,因为它们包含空格

使用


我可能错了。为了进一步参考,请查看

什么是命令行参数和路径进程。路径\u进程=r“C:\Program Files(x86)\IAR Systems\Embedded Workbench 7.2\common\bin\IarBuild.exe”;command\u line\u arguments=“C:\\test\\test.ewp-build Debug-log info”三个参数被IAR正确解析,只有输出未显示,因此我想您也需要指定工作目录。Process.startinfo.WorkingDirectory=@“。。根据您的要求。很可能它正在创建输出,但在其他位置。
command_line_arguments = "\"C:\\test\\test.ewp\" \"-build Debug\" \"-log info\""