C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: パイプした場合の戻り値の取得


(過去ログ 133 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■78884 / inTopicNo.1)  パイプした場合の戻り値の取得
  
□投稿者/ Muu (5回)-(2016/02/23(Tue) 09:17:38)

分類:[C#] 

Win8.1 32/64bit Vs2015 C# .net4.5
お世話になります。

バッチファイルとTeeもどきのアプリをパイプでつなげて実効しているのですが、
バッチファイルの終了コードを取得するには、どうすればよいでしょうか。

System.Diagnostics.Process m_Prs = new System.Diagnostics.Process();
m_Prs.StartInfo.UseShellExecute = false;
m_Prs.StartInfo.FileName = System.Environment.GetEnvironmentVariable("ComSpec");
m_Prs.StartInfo.Arguments = string.Format(@"/c d:\test.bat | d:\tee_modoki.exe -o d:\test.log);
m_Prs.StartInfo.CreateNoWindow = true;
m_Prs.StartInfo.RedirectStandardInput = false;
m_Prs.StartInfo.WorkingDirectory = m_strExecPath;//実行パス
if (m_Prs.Start())


バッチファイルでは最後に「exit /b 1」のように終了コードを設定しています。

以上、よろしくお願いします。



引用返信 編集キー/
■78885 / inTopicNo.2)  Re[1]: パイプした場合の戻り値の取得
□投稿者/ shu (813回)-(2016/02/23(Tue) 09:26:32)
No78884 (Muu さん) に返信

> バッチファイルでは最後に「exit /b 1」のように終了コードを設定しています。
>
パイプで次の処理が走っているのでこの終了コードは最終的に返ってきません。
tee_modoki.exeの結果が終了コードとなります。test.batでの終了コードを取得するなら
test.bat | tee_modolo.exeを実行するバッチを作成しその最後で終了コードを返す必要があります。
test.batの終了コードは1度環境変数に保存しておいた方がよいかと思います。


> Win8.1 32/64bit Vs2015 C# .net4.5
> お世話になります。
>
> バッチファイルとTeeもどきのアプリをパイプでつなげて実効しているのですが、
> バッチファイルの終了コードを取得するには、どうすればよいでしょうか。
>
m_Prs.ExitCodeで終了コードの取得が出来ます。

引用返信 編集キー/
■78901 / inTopicNo.3)  Re[2]: パイプした場合の戻り値の取得
□投稿者/ Muu (7回)-(2016/02/23(Tue) 13:10:07)
shu 様
お世話になります。
やはり、パイプで前段の戻り値の取得は無理なんですね。
ありがとうございました。

先ほどsafeteeというソフトを見つけ、こちらで目的とすることと
同等のことを実現できました。


                      以上
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -