- PR -

Shell で実行したコマンドの結果を知りたい

1
投稿者投稿内容
KT工房
常連さん
会議室デビュー日: 2006/06/20
投稿数: 49
投稿日時: 2007-04-26 14:44
いつもお世話になっています。

現在Shellメソッドで net time を使用して時刻合わせを行っているのですが、
相手側でNTPサーバーのサービスが起動していない場合などに時刻が正常に
同期できない場合があります。
そこで、最低でもShellで実行した結果を画面上に表示させたいのですが、
良い方法があれば教えてください。

開発は VisualStudio2003 VB を使用しています。

よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-04-26 15:16
引用:

KT工房さんの書き込み (2007-04-26 14:44) より:

現在Shellメソッドで net time を使用して時刻合わせを行っているのですが、相手側でNTPサーバーのサービスが起動していない場合などに時刻が正常に同期できない場合があります。そこで、最低でもShellで実行した結果を画面上に表示させたいのですが、良い方法があれば教えてください。


Shell 関数ですと、即座に戻り値として PID くらいしか返してくれないので、
System.Diagnostics.Process クラスを利用した方が良いでしょう。

たとえば、プロセス終了後に ExitCode プロパティから終了コードを取得することができます。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-04-26 15:49
参考になるかな?
http://codezine.jp/a/article.aspx?aid=83
KT工房
常連さん
会議室デビュー日: 2006/06/20
投稿数: 49
投稿日時: 2007-04-27 09:30
いつもお世話になっています。
じゃんぬねっとさんから教えていただいたProcessクラスを使用することで
なんとかエラーメッセージを拾うことができました。

Processクラスだと直接コマンドを指定できなかったので、
一度 batファイルを作成し、それを実行する形式に変更しました。
エラーメッセージはRedirectStandardErrorを使用することで取得できたので、
ExitCodeが0以外ならばRedirectStandardErrorで取得したメッセージを表示するように
しました。

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)