社区
C#
帖子详情
求助:如何获取控制台程序的输出文本
snake4
2010-12-07 07:52:08
是这样的,我通过Process.Start(***)执行控制台程序。然后
获取控制台界面上打印出来的文本保存到文件中。。
有什么办法可以实现这个功能吗??
或者谁知道用C#怎么获取进程的EProcess??
望指点小弟一二,先谢了。。
...全文
643
24
打赏
收藏
求助:如何获取控制台程序的输出文本
是这样的,我通过Process.Start(***)执行控制台程序。然后 获取控制台界面上打印出来的文本保存到文件中。。 有什么办法可以实现这个功能吗?? 或者谁知道用C#怎么获取进程的EProcess?? 望指点小弟一二,先谢了。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
snake4
2010-12-08
打赏
举报
回复
在CMD上只能这样才显示:
cmd
d:
xuetrcmd.exe
ps//xuetrcmd.exe 命令
snake4
2010-12-08
打赏
举报
回复
都不可以。。。无语。。。。
机器人
2010-12-08
打赏
举报
回复
只要cmd.exe上能输出内容就能重定向。
有可能是StandardOutput,有可能是StandardError
process.StartInfo.Argument = " /c XueTrCmd.exe的绝对路径 fkp 0x81876550 > D:\1.txt 2>&1"
把 stdout 和 stderr 一起重定向到 file 文件中
snake4
2010-12-08
打赏
举报
回复
有什么办法可以获得进程的EProcess吗??其实我调用这个程序目的也就是想获得EProcess
网上说了不少办法,但是都行不通。有些是可以获取EProcess,但是不是全部获取。
只是部分获取,有些进程不允许访问的。XueTrCmd.exe可以访问任何进程EProcess
所以就想到调用它
snake4
2010-12-07
打赏
举报
回复
关键是这个程序不支持重定向输出。。哎。。
输出的是空白文本的。
机器人
2010-12-07
打赏
举报
回复
那你就应该带参数运行,比如:
process.StartInfo.Argument = " /c XueTrCmd.exe的绝对路径 fkp 0x81876550 > D:\1.txt"
上面这样运行,也不用ReadToEnd了。
机器人
2010-12-07
打赏
举报
回复
我看这个工具的介绍:
http://bbs.bathome.net/viewthread.php?tid=9520
1.直接XueTrCmd.exe运行,这个会进入到一个循环中,这个循环里反复接收用户输入的命令。。。
如果有等待用户输入,Process就会阻塞,这样ReadToEnd就会阻塞
另外,如果你配好参数直接用 cmd.exe /c "...\XueTrCmd.exe" > D:\1.txt 就可以输出到一个文本文件中。
cmd.exe ... > D:\1.txt 就表示重定向输出。你就不用ReadToEnd再写文件了。
snake4
2010-12-07
打赏
举报
回复
楼上的,给你发了消息。
snake4
2010-12-07
打赏
举报
回复
使用方法:
1.直接XueTrCmd.exe运行,这个会进入到一个循环中,这个循环里反复接收用户输入的命令,退出这个循环后,会自动卸载驱动程序。
2.XueTrCmd.exe带参数运行,这个会执行具体的参数命令,程序退出时,不会卸载驱动程序。
机器人
2010-12-07
打赏
举报
回复
应该是有什么console交互阻塞了,你看看XueTrCmd.exe有没有什么help的。
有类似问题,比如:XCopy在遇到目标路径已经有同名文件,就会停下来询问是否要覆盖。
snake4
2010-12-07
打赏
举报
回复
[Quote=引用 11 楼 fangxinggood 的回复:]
上面写错了...改下:
process.StartInfo.FileName = "cmd.exe"
process.StartInfo.Argument = " /c XueTrCmd.exe的绝对路径"
[/Quote]
还是不可以。。还是卡在string output = srout.ReadToEnd();这个语句这。。
想不明白为什么!
机器人
2010-12-07
打赏
举报
回复
上面写错了...改下:
process.StartInfo.FileName = "cmd.exe"
process.StartInfo.Argument = " /c XueTrCmd.exe的绝对路径"
机器人
2010-12-07
打赏
举报
回复
那就用cmd调。
process.StartInfo.FileName = "cmd.exe /c XueTrCmd.exe的绝对路径"
snake4
2010-12-07
打赏
举报
回复
[Quote=引用 8 楼 fangxinggood 的回复:]
XueTrCmd.exe 要指定绝对路径。
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "你XueTrCmd.exe的绝对路径";
[/Quote]
我已经设置成绝对路径了。。还是不可以。。
断点发现运行到string output = srout.ReadToEnd();
就卡住了。。
好像在等待什么~~查看任务管理器,XueTrCmd.exe占用百分百CPU,不明白为什么?
但是在CMD上直接调用XueTrCmd.exe就没有问题。
郁闷...
机器人
2010-12-07
打赏
举报
回复
XueTrCmd.exe 要指定绝对路径。
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "你XueTrCmd.exe的绝对路径";
snake4
2010-12-07
打赏
举报
回复
但是在CMD里面可以执行
snake4
2010-12-07
打赏
举报
回复
用lijun84的方法是可以打开进程,如果是CMD就正常运行
但是XueTrCmd.exe就不可以,不知道是为什么?
snake4
2010-12-07
打赏
举报
回复
[Quote=引用 2 楼 lijun84 的回复:]
private string[] RunCmd(string[] command)
{
Process process = new Process();
process.StartInfo.FileName = "cmd.exe"; // Run this program
……
[/Quote]
用你的方法可以看到进程是启动了。但是输入的命令无效。
不知道是为什么。我要启动的进程是http://www.xuetr.com/?p=123
上面这个地址的XueTrCmd.exe
给命令ps能显示出全部系统进程信息
但是直接双击XueTrCmd.exe能打开,用Process.start()就无法启动,为什么呢?
wuyq11
2010-12-07
打赏
举报
回复
Trace来输出到 文件
Trace.Listeners.Clear();
Trace.Listeners.Add(new TextWriterTraceListener(logFile));
Trace.AutoFlush = true;
Trace.WriteLine(strData);
机器人
2010-12-07
打赏
举报
回复
EProcess 是什么?
加载更多回复(1)
C#微软培训资料
第三章 编写第一个应用
程序
.20 3.1 Welcome
程序
.20 3.2 代 码 分 析 .20 3.3 运 行 程 序 .23 .4 添 加 注 释 .25 3.5 小 结 .27 第二部分 C#
程序
设计基础.28 第四章 数 据 类 型 .28 4.1 值 类 型...
【blender脚本】使python脚本能在blender console面板
输出
print信息
在blender里
获取
python脚本的print
输出
华为开发者大赛云计算专场
1.华为企业云API使用讲解 该课程介绍如何通过华为企业云API进行二次开发,并选取一个实战案例。后把遇到问题的
求助
渠道介绍给大家。
经验:如何让Python脚本开机自启且不显示
控制台
窗口
经验:如何让Python脚本开机自启且不显示
控制台
窗口 更新历史 20200208: 首次发布 最近用Python搞了一把Windows桌面壁纸自动更换1,却遇到了两个困扰: 如何让Python脚本开机自启? Python脚本开机自启后,会...
【
求助
交流】Qt编译后可运行,但是窗口不显示
今天参照教程继续学习Qt,制作一个
文本
编辑器,但是在最后添加一个
文本
查找功能的后,编译正常,运行无错,只是窗口不显示,到进程中看了看,发现在后台运行。具体原因因为初学还没弄明白,但是找到了原因。出错的...
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章