[前の記事]« 指定されたパスが見つかりません
[次の記事]WindowsへTELNETログインするまでをバッチ処理で自動化したい »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「リダイレクト処理、パイプ処理」索引へ

アプリケーションへの複数回の入力を自動化したい

444.
アプリケーションからの複数入力応答をリダイレクトで行う方法
2004年05月06日(木) 13時55分
のぶ
実行ファイルからの複数入力応答をリダイレクトで行う方法を教えてください。OSはWindows2000です。

例えば、下のように"PGM"を実行すると"都道府県名"と"地域"を入力するようなアプリケーションがあったとして"東京都"と"青山"の入力を自動でしたい。
x:\>PGM.exe < ATAI.txt [Enter]
x:\>都道府県を入力してください。: 東京都
x:\>地域を入力してください。: 青山
ATAI.txtの内容
東京都[CRLF]
青山[CRLF]
445.
Re:アプリケーションからの複数入力応答をリダイレクトで行う方法
2004年05月07日(金) 02時34分
oo
>実行ファイルからの複数入力応答をリダイレクトで行う方法を教えてください。OSはWindows2000です。

>例えば、下のように"PGM"を実行すると"都道府県名"と"地域"を入力するようなアプリケーションがあったとして"東京都"と"青山"の入力を自動でしたい。
>x:\>PGM.exe < ATAI.txt [Enter]
>x:\>都道府県を入力してください。: 東京都
>x:\>地域を入力してください。: 青山
>ATAI.txtの内容
>東京都[CRLF]
>青山[CRLF]

PGM.exe < ATAI.txt というコマンドは間違ってないと思うので、うまく行かないならプログラムが間違ってるんじゃないですか?例えばscanfを使っているとか。

参考:
#include <stdio.h>
main()
{ char buf1[200],buf2[200];
 fputs("都道府県を入力してください。: ",stdout);
 fflush(stdout);
 fgets(buf1,200,stdin);
 fputs(buf1,stdout);
 fputs("地域を入力してください。: ",stdout);
 fflush(stdout);
 fgets(buf2,200,stdin);
 fputs(buf2,stdout);
}
446.
Re2:アプリケーションからの複数入力応答をリダイレクトで行う方法
2004年05月07日(金) 12時31分
のぶ
>>実行ファイルからの複数入力応答をリダイレクトで行う方法を教えてください。OSはWindows2000です。
>>
>>例えば、下のように"PGM"を実行すると"都道府県名"と"地域"を入力するようなアプリケーションがあったとして"東京都"と"青山"の入力を自動でしたい。
>>x:\>PGM.exe < ATAI.txt [Enter]
>>x:\>都道府県を入力してください。: 東京都
>>x:\>地域を入力してください。: 青山
>>ATAI.txtの内容
>>東京都[CRLF]
>>青山[CRLF]

>PGM.exe < ATAI.txt というコマンドは間違ってないと思うので、うまく行かないならプログラムが間違ってるんじゃないですか?例えばscanfを使っているとか。

>参考:
>#include <stdio.h>
>main()
>{ char buf1[200],buf2[200];
> fputs("都道府県を入力してください。: ",stdout);
> fflush(stdout);
> fgets(buf1,200,stdin);
> fputs(buf1,stdout);
> fputs("地域を入力してください。: ",stdout);
> fflush(stdout);
> fgets(buf2,200,stdin);
> fputs(buf2,stdout);
>}


早速の回答ありがとうございます。
上記の PGM.exe はjavaで書かれたアプリケーションのようですが詳細は不明です、よってどのような記述をされているのかわかりません。
PGM.exe < ATAI.txt のようにリダイレクトを書くのは正しいのですね!問題はリダイレクトを受けるアプリケーション(PGM.exe)の作り方しだいなのでしょうか?
448.
Re3:アプリケーションからの複数入力応答をリダイレクトで行う方法
2004年05月08日(土) 02時26分
oo
>上記の PGM.exe はjavaで書かれたアプリケーションのようですが詳細は不明です、よってどのような記述をされているのかわかりません。
>PGM.exe < ATAI.txt のようにリダイレクトを書くのは正しいのですね!問題はリダイレクトを受けるアプリケーション(PGM.exe)の作り方しだいなのでしょうか?

そうですね。対話使用を前提としたプログラムだと、先行キーインデータを無効にするため、プロンプトを出す前にも入力を受け付けて読み捨て、プロンプトを出してからの入力しか有効にならないような作りもあると思います。その場合は、リダイレクトからの入力は一瞬で読み捨てられてしまいますね。unixだとexpectという、プロンプトを確認しながら文字列入力を行うツールがありますが、Windowsでは??
 
 


カテゴリー「リダイレクト処理、パイプ処理」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2004年05月06日 10:09に投稿されたエントリーのページです。

ひとつ前の投稿は「指定されたパスが見つかりません」です。

次の投稿は「WindowsへTELNETログインするまでをバッチ処理で自動化したい」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート