- PR -

コンソールアプリケーションの出力をバッチファイルに渡したい

投稿者投稿内容
chok
会議室デビュー日: 2004/12/29
投稿数: 12
投稿日時: 2006-07-03 11:47
文字列を出力するコンソールアプリケーションAがあります。
Aを起動するバッチファイルの中で、Aの実行結果を利用する方法はありますでしょうか?

もう少し簡単に申し上げますと、仮に、アプリケーションのリターンコード(バッチファイルのErrorLevel)として文字列を利用することができれば解決できる問題です。

簡単に何とかなりそうで、調べてみるとなかなか難しいことなのかと感じています。
アドバイスをお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-07-03 11:51
引用:

chokさんの書き込み (2006-07-03 11:47) より:

文字列を出力するコンソールアプリケーションAがあります。
Aを起動するバッチファイルの中で、Aの実行結果を利用する方法はありますでしょうか?
もう少し簡単に申し上げますと、仮に、アプリケーションのリターンコード(バッチファイルのErrorLevel)として文字列を利用することができれば解決できる問題です。


A から外部ファイルへ出力しな限り、ExitCode しか無理だと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Katze
ベテラン
会議室デビュー日: 2005/11/01
投稿数: 74
お住まい・勤務地: 1台でも せんだい
投稿日時: 2006-07-03 11:54
ググってみたところ次のようなページが見つかりました

http://pegalabo.net/archives/VB.NET/source/PingCheck.html

参考になりますでしょうか?

# リターンコードではなく標準出力を取得して なので
# 目的とはあわないかも…


[ メッセージ編集済み 編集者: Katze 編集日時 2006-07-03 11:56 ]
chok
会議室デビュー日: 2004/12/29
投稿数: 12
投稿日時: 2006-07-03 12:04
じゃんぬねっとさん、Katzeさん、早速の返答をありがとうございます。

> A から外部ファイルへ出力しな限り、ExitCode しか無理だと思います。

私も調べていて、↑こうなのかなー・・・、と感じてきたところで、確認のために質問させて頂いた次第でした。
どうもありがとうございました。
外部ファイルに出力するわけにも行かない問題なので、別の方法を検討してみます。
Katzeさんの紹介してくれたようなやり方になるかと思います。


#これができると割りと便利かと思うんですがね・・・
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-07-03 12:17
んあ?バッチのプログラムの中で受け取りたいんじゃないの?
何か質問と解答ずれてるような気がするんだけど。気のせいか?
Java僧
ぬし
会議室デビュー日: 2003/11/06
投稿数: 261
投稿日時: 2006-07-03 12:28
なぜ外部ファイルに出力するわけにも行かないのか書いてないので、
はずしているかもですが、

hoge.bat の中身
A.exe | B.exe

のようにパイプを使って、A.exeの標準出力をB.exeの標準入力に
つなげたらどうでしょう?
Katze
ベテラン
会議室デビュー日: 2005/11/01
投稿数: 74
お住まい・勤務地: 1台でも せんだい
投稿日時: 2006-07-03 12:43
引用:

ぶさいくろうさんの書き込み (2006-07-03 12:17) より:
んあ?バッチのプログラムの中で受け取りたいんじゃないの?
何か質問と解答ずれてるような気がするんだけど。気のせいか?



失礼しましたm(_ _)m

「バッチのプログラムの中で」というのを コンソールアプリケーションAを起動する
プログラムと勘違いしました
chok
会議室デビュー日: 2004/12/29
投稿数: 12
投稿日時: 2006-07-03 13:26
質問主です。
具体的に説明させて頂きたいと思います。
やりたいことは、以下のような感じです。

・SQL*Loaderを使って、テキストファイルの内容をOracleのテーブルに、定期的に、人手を介さずにアップロードしたい。
・通常であれば、1行のバッチファイルで可能であるが、社内ポリシー上、DBパスワードを平文でテキストファイルに保存することが認められないため、工夫が必要。
・暗号化したDBパスワードがレジストリに保存されている。(特に、こうでなければいけないというわけではない)
・複合を行うためのDLLが提供されている。

以上で、状況が伝わりますでしょうか。
一時的にしろ、DBパスワードをディスクに保存することはNGなので、外部ファイル出力はできません。
今後、DBパスワードの変更を行いたい、というニーズが発生することも踏まえ、なるべくシンプルで、運用担当者にも分かりやすくなる方法を検討したいと思っています。
良いアイデアがありましたらお願いします。

今のところ、SQL*Loaderのコマンドのパスワードの部分を"PPPPP" にでも置き換えた文字列を引数にして、複合化用のアプリケーションに渡す方法で行こうかなーと思っています。


#Katzeさんが紹介してくれたコードの中身を良く見もせずに、「参考にする」ようなことを言ってすみませんでした。

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