実現したいこと
お世話になります。
事務系の業務をする社会人になります。
(恥ずかしながらVBAの簡単なマクロ作成しかしたことがないです)
業務上使用しているexeファイルがあり、そのexeファイルはbatファイルから起動しています。
本exeはコマンドプロンプト上で立ち上がり、起動後メニューが出てきます。
ex)
1:setting
2:measure
3:exit
select:
【実現したい内容】
上述したexeファイルの起動~コマンド実行までbatファイル化したいです。細かく以下の3つを実現したいです。
①bat起動後『select:』が返ってくるのを待つ
②①が返ってきたら2を入力する
③入力後の返り値をテキストファイルで残す
発生している問題・分からないこと
実現方法がまるで分らず困っています。(上記3点すべてやり方が分かっていない)
そもそもbatファイル内で完結させるべき話なのかから判断できていないです。
①文字列を待つ
ネットで検索すると時間でwaitをかける方法は出てくるのですが、文字列待ちの方法が見つかりませんでした。
②文字列の入力
echo 入力文字|***.exeはお試ししてみたのですが入力できずでした
完全に丸投げの形になってしまい大変申し訳ないです。
ご助言いただければ幸いです。
該当のソースコード
特になし
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
上述した通りですが、足掛かりから何もつかめておらずです。。。
補足
特になし
> 業務上使用しているexeファイルがあり、
このプログラムのマニュアルは存在しないのでしょうか? 質問を読む限りではインタラクティブ(対話形式)な操作を前提としている様ですが、もしかするとスイッチオプションが用意されているかもしれません。(/? オプションでヘルプメッセージが表示されたりするなど)
> ②①が返ってきたら2を入力する
とは、「2のキーだけを押す」「2 のキーを押した後 Enterキーを押す」のどちらでしょうか?
あるいはそれ以外?
> ③入力後の返り値
とは何ですかね?2を入力した後、プログラムがコマンドプロンプト画面に表示する文字列のことですか?
その場合は1行ですか?複数行ですか?出力した後、プログラムは終了しますか?プログラム終了のためにさらに操作が必要(3を入力とか?)ですか?
それとも2を入力すると直ちにプログラムが終了して、BATファイルの%ERRORLEVEL%で取得出来るプログラムの返り値のことですか?・・・こっちは多分違うかな。
状況によってはバッチファイルだけで可能な可能性があります。
標準出力、つまりコマンドプロンプトに出力されるということなら
JScriptで、"WScript.Shell"を使ってStdOutとStdInでは出来ないですか?
詳細は、copilotとかchatgptに聞いたら教えてくれそうな気はします。
まぁ。でも、今ならpowershellの方がいいのかな。