exe文件的输出内容无法重定向到winform窗口中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了exe文件的输出内容无法重定向到winform窗口中相关的知识,希望对你有一定的参考价值。

我把scrapy程序打包成的exe直接拖到控制台里运行无误,信息也能输出来,但当在winform中调用cmd运行exe文件时信息无法重定向出来。(注:其他C++写的小程序的输出程序也无法在这里重定向出来。)代码如下:

求高手指点一二!

public void StartExe(string path, string name)//启动exe
        
            try
            
                System.Diagnostics.Process p = new System.Diagnostics.Process();
                p.StartInfo.FileName = name;//需要启动的程序名       
                p.StartInfo.WorkingDirectory = path;
                p.Start();//启动
                
                            
            catch (Exception ex)
             
         
        
        
        //调用
        StartExe(D:\\Projects, "my.exe");
可以启动exe,cmd,dat,快捷方式

追问

不是要启动,是要将exe运行时在cmd中输出的内容重定向到文本框中。你这里的代码除了启动就只有启动。

追答

怪不得没人回答.实在看不懂你说的什么玩意.

追问

我们的代码没区别吧?看不懂只是境界问题

追答

对,你境界高.知道里没有一个人能看得懂.

参考技术A 方法一:用反射EXE、dll文件的方式,获取 PE文件中的信息并输出到richtextbox中。
方法二:使用PyQt,用QT做界面,然后将信息输出到QT程序中,QT程序由.NET调用本回答被提问者采纳

linux 从入门到跑路–重定向 管道

linux 从入门到跑路

重定向 管道

Linux给程序提供三种I/O设备
标准输入(STDIN)-0默认接受来自键盘的输入
标准输出(STDOUT)-1默认输出到终端窗口
标准错误(STDERR)-2默认输出到终端窗口
I/O重定向:改变默认位置

重定向

重定向会覆盖原文件内容

> 把STDOUT重定向到文件
2> 把STDERR重定向到文件
&> 把所有输出重定向到文件
set –C 禁止将内容覆盖已有文件,但可追加
set +C 允许覆盖

>| file 强制覆盖

#多输出实例
[[email protected] ~]# ll /mytext/
总用量 0
-rwxrwxrwx. 1 root root 0 7月  22 03:52 1
-rw-r--r--. 1 root root 0 7月  22 03:52 10
-rwxrwxrwx. 1 root root 0 7月  22 03:52 2
-rwxrwxrwx. 1 root root 0 7月  22 03:52 3
-rwxrwxrwx. 1 root root 0 7月  22 03:52 4
-rwxrwxrwx. 1 root root 0 7月  22 03:52 5
-rwxrwx---. 1 root root 0 7月  22 03:52 6
-rwxrwx---. 1 root root 0 7月  22 03:52 7
-rwxrwx---. 1 root root 0 7月  22 03:52 8
-rwxrwx---. 1 root root 0 7月  22 03:52 9

[francis@localhost ~]$ cp -vr /mytext/ /app/hello  1>correct.txt 2>error.txt
[francis@localhost ~]$ cat correct.txt 
"/mytext/" -> "/app/hello/mytext"
"/mytext/1" -> "/app/hello/mytext/1"
"/mytext/2" -> "/app/hello/mytext/2"
"/mytext/3" -> "/app/hello/mytext/3"
"/mytext/4" -> "/app/hello/mytext/4"
"/mytext/5" -> "/app/hello/mytext/5"
"/mytext/6" -> "/app/hello/mytext/6"
"/mytext/7" -> "/app/hello/mytext/7"
"/mytext/8" -> "/app/hello/mytext/8"
"/mytext/9" -> "/app/hello/mytext/9"
"/mytext/10" -> "/app/hello/mytext/10"
[francis@localhost ~]$ cat error.txt 
cp: 无法打开"/mytext/6" 读取数据: 权限不够
cp: 无法打开"/mytext/7" 读取数据: 权限不够
cp: 无法打开"/mytext/8" 读取数据: 权限不够
cp: 无法打开"/mytext/9" 读取数据: 权限不够
[francis@localhost ~]$ cp -vr /mytext/ /app/hello 1>correct.txt 2>error.txt &> both.txt
[francis@localhost ~]$ cat both.txt 
"/mytext/1" -> "/app/hello/mytext/1"
"/mytext/2" -> "/app/hello/mytext/2"
"/mytext/3" -> "/app/hello/mytext/3"
"/mytext/4" -> "/app/hello/mytext/4"
"/mytext/5" -> "/app/hello/mytext/5"
"/mytext/6" -> "/app/hello/mytext/6"
cp: 无法打开"/mytext/6" 读取数据: 权限不够
"/mytext/7" -> "/app/hello/mytext/7"
cp: 无法打开"/mytext/7" 读取数据: 权限不够
"/mytext/8" -> "/app/hello/mytext/8"
cp: 无法打开"/mytext/8" 读取数据: 权限不够
"/mytext/9" -> "/app/hello/mytext/9"
cp: 无法打开"/mytext/9" 读取数据: 权限不够
"/mytext/10" -> "/app/hello/mytext/10"

 

追加重定向
>> 原有内容基础上,追加内容

命令1 | tee[-a ] 文件名| 命令2
把命令1的STDOUT保存在文件中,做为命令2的输入
-a 追加

以上是关于exe文件的输出内容无法重定向到winform窗口中的主要内容,如果未能解决你的问题,请参考以下文章

报错笔记:linux 命令行中的print输出内容无法重定向到文件中

将命令提示符输出重定向到 Visual Studio 2012 中的输出窗口

无法使用输出重定向覆盖现有文件 >

标准IO和重定向

如何避免重定向输出符号“>”被当作命令行参数(可能在快捷方式中)

标准IO重定向和管道