VC++のコード上で.batファイルを実行する必要が出てきたのですが、
VC++で外部ファイルを実行、その結果を受け取るにはどうすればよいのでしょうか?
ちなみに使用しようと思っているバッチファイルは、juliusという音声認識エンジンです。
1.go.batからjulius.exeが起動
2.「### read waveform input enter filename->」と言う記述が出てくるので、wavファイルのファイル名を指定してエンター
3.#sentence1: ついに 、 他 団体 戦 。
#wseq1: <s> ついに:ツイニ:ついに:503 、:、:、:10 他:タ:他:188 団体:ダンタイ:団体:
#507 戦:セン:戦:520 。:。:。:8 </s>
#phseq1: silB | ts u i n i | sp | t a | d a N t a i | s e N | sp | silE
のようにcmd.exe上に結果が返ってくる。
この一連の動作を、1のファイル名をVC++上で指定し、
3のcmd.exe上で現れる分をVC++上で受け取る(CStringなりに格納する)ような方法は無いでしょうか。
もし他に良い方法をご存知の方がいましたら、教えていただければ幸いです。
No.3ベストアンサー
- 回答日時:
<%1 は go.batの引数1を入力とする … キーボードからの入力をリダイレクトする
2>&1は エラー出力を標準出力にリダイレクトする
>%2 は 標準出力go.batの引数2にリダイレクトする
といった意味です
> go.bat ファイル名 出力ログファイル名
このファイル名は 解析(juliusで)処理するファイルの名前です
出力ログファイル名は C/C++側で結果を受け取るためのファイル名です
"go.bat ファイル名 出力ログファイル名"
を sawn/execなどにコマンドやパラメータとして渡してやることになります
No.2
- 回答日時:
パイプ作って子プロセスを起動すればよいですね.
ちょっと古いけど,このあたり参考になるんじゃないかな?
http://www.h4.dion.ne.jp/~fht/wptips/readprc.html
No.1
- 回答日時:
まずは機能するバッチファイルを記述しましょう
go.batを
@echo off
julius.exe <%1 2>&1 >%2
といったといった具合にして
go.bat ファイル名 出力ログファイル名
で実行して出来上がる出力ログが適切なのかどうか確認しましょう
出来上がった出力ログが満足いくものであれば後はテキストファイルの処理になります
go.batの実行に関してはプログラミングスタイルに依存するともいます
Cランタイムのspawn/exec系やWinAPIのCreateProcessなど使うことになりそうです
この回答への補足
ありがとうございます、バッチファイルのログをとるということに頭が回りませんでした。
何でもかんでも聞いてしまって申し訳ないのですが、
<%1 2>&1 >%2の意味と、
go.bat ファイル名 出力ログファイル名 を記述するのはVCのコード上でなのでしょうか?
また、ファイル名とは何のファイル名ですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- その他(プログラミング・Web制作) フォルダ内の特定 拡張子のファイルを一括実行するBat ファイルについて 4 2022/04/17 09:51
- 労働相談 合意済み仕様の商品納入後における仕様変更要求への対応について 5 2023/04/19 09:41
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- その他(IT・Webサービス) エクセルの実行ファイルについての質問です。 1 2023/05/04 03:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- マルウェア・コンピュータウイルス pcがウィルス感染しているかもしれません。変な声が聞こえます。 1 2022/05/03 00:43
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイル出力の場所を指定
-
VC++でUTF-8のファイルを出力し...
-
二次元配列をクリップボードに...
-
テキストファイルに改行コード...
-
CreateProcess関数と実行後の戻...
-
C言語での印刷方法
-
構造体のファイル出力
-
ファイルの文字コードをUTF-8に...
-
VB.NETでExcelファイルを出力す...
-
ファイル形式またはファイル拡...
-
プリンタに出力する信号をパソ...
-
Base64でエンコードした後の文...
-
サウンド出力のデバイスを選択...
-
C++ BuilderでPDF出力
-
コマンド(例えばls)の出力結果...
-
Accessでのレポート印刷待機方法
-
setvbufってどう使うの?
-
C言語のローカル変数初期化に...
-
FORTRANの出力データの左寄せが...
-
C言語での出力の上書き方法を教...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンド(例えばls)の出力結果...
-
Acccess レポートをグループ別...
-
VC++でUTF-8のファイルを出力し...
-
サウンド出力のデバイスを選択...
-
ファイルの文字コードをUTF-8に...
-
VBA でメモ帳へ保存する際の保...
-
ファイル出力の場所を指定
-
ファイル形式またはファイル拡...
-
テキストファイルに改行コード...
-
シェルコマンドの 2>&1 とはど...
-
Wordマクロで指定したフォルダ...
-
AccessVBA複数レポート条件毎に...
-
二次元配列をクリップボードに...
-
UNIX & Linux の標準出力で得た...
-
フォルダにあるPDF情報の抽出(VBA)
-
C++ BuilderでPDF出力
-
VBSでEXCEL⇒CSV変換で日付の書...
-
fortranのtxtファイル出力書式...
-
CBool関数について VB6とVB.net...
-
ワードからPDF変換でグラフが表...
おすすめ情報