Re: [問題] c#程式執行時,如何接收.bat的回傳值

看板C_Sharp作者 (bbsn)時間11年前 (2013/06/09 19:09), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
因為上一篇有高手回覆的內容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

06/09 19:34, , 1F
放到執行緒裡面跑
06/09 19:34, 1F
文章代碼(AID): #1Hj69jXH (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #1Hj69jXH (C_Sharp)