アプリ版:「スタンプのみでお礼する」機能のリリースについて

Windowsフォームアプリケーションからコマンドプロンプトを起動して、コマンドを実行した際に出る出力をフォームアプリケーション側から受け取ろうとしています。

テスト内容では成功するのですが、受け取りたい対象の内容は取得できずに困っています。
例えばコマンドプロンプト上で hoge と入力し実行すると

「'hoge' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」

と表示されます。
しかし、前述カッコ内の表示をアプリケーション側から受け取ることが出来ませんでした。
どのようにすれば受け取ることができるでしょうか?
単純な path などを実行した場合は受け取れました。
以下が試した内容です。

Process ps = new Process();
ps.StartInfo.FileName = Environment.GetEnvironmentVariable("ComSpec");
ps.StartInfo.Arguments = @"/C hoge";
ps.StartInfo.UseShellExecute = false;
ps.StartInfo.RedirectStandardOutput = true;
ps.StartInfo.CreateNoWindow = true;
ps.Start();
string output = ps.StandardOutput.ReadToEnd();
ps.WaitForExit();
ps.Dispose();

MessageBox.Show(output);//空の内容しか表示されない
//テストで hoge を path にした際はシステム環境変数が表示された


・環境
Windows 7 Professional 64bit
VC# 2010 Express

よろしくお願いいたします。

A 回答 (1件)

「'hoge' は、内部コマンドまたは外部コマンド、


操作可能なプログラムまたはバッチ ファイルとして認識されていません。」

だったら、たぶん標準エラー出力に出力されてると思うんですが。
    • good
    • 0
この回答へのお礼

ありがとうございます!

RedirectStandardErrorをtrueにしてStandardError.ReadToEnd()から取得してみたところ、無事表示することが出来ました。

お礼日時:2011/04/26 05:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!