作者bbsn (bbsn)
看板C_Sharp
标题Re: [问题] c#程式执行时,如何接收.bat的回传值
时间Sun Jun 9 19:09:31 2013
因为上一篇有高手回覆的内容google过同样的方法
目前是改写成一样写成bat去执行
然後output出来在bat出现的值放进textbox内
不过有几个小问题
第一:在执行的过程中,程式会因为在执行,程式感觉像当掉
不过程式是在执行的,请问这有办法改善吗?
第二:有办法一行一行写进去listbox内吗? 试过,但output出来的都只会在同一行
第三:因为我有使用StandardError,bat有错误讯息会也会一起输出textbox
我希望能针对这一行错误讯息,改变颜色,有google过,说改用richtextbox
小弟超级新手,再麻烦高手提示,谢谢~
※ 引述《virdust2003 (XDXDXDXDXDXD)》之铭言:
: 这是之前读 asfbin 的输出用的code
: ProcessStartInfo psiASFBin = new ProcessStartInfo();
: psiASFBin.FileName = AsfbinPath18;
: //路径需要双引号能避免路径有错(编译执行无加双引号有办法,但封装後
: 程式剪辑会有bug)
: psiASFBin.Arguments = TrimInputArgument;
: psiASFBin.RedirectStandardOutput = true;
: psiASFBin.UseShellExecute = false;
: psiASFBin.CreateNoWindow = true;
: pTrim = new Process();
: pTrim.StartInfo = psiASFBin;
: pTrim.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
: pTrim.EnableRaisingEvents = true;//未设定此属性无法启用事件
: pTrim.Start();
: string ProcessOutput = pTrim.StandardOutput.ReadToEnd();
: ※ 引述《bbsn (bbsn)》之铭言:
: : 方法一:
: : 我用c#产生一个netuse.bat档,并且执行。
: : 假如我产生的netuse.bat档需逐一连到PC1、PC2、PC3
: : 若PC2无法netuse的话,有办法在c#的介面上显示失败名单的资料吗?
: : 目前有想到如果失败的话,可以直接产生一个.txt档
: : 给程式读取,但因为不确定.bat开始到结束要花多久时间
: : 方法二:
: : 逐一产生PC1.bat、PC2.bat、PC3.bat。
: : PC1.bat 执行完後,回传一个值或是产生一个档案给程式,程式再产生PC2.bat
: : 回传的值或是档案可以让程式判断失败或成功。
: : 其实两种方法都差不多
: : 但程式要如何接收这个值或是档案←卡在这不知道要怎麽写
: : 目前方法二比较接近理想
: : 再麻烦各位高手解答,谢谢~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.194.124.126
1F:推 a1234shin:放到执行绪里面跑 06/09 19:34