質問
telnetで接続先の操作方法について
- 投稿日時:2010/12/13 23:23

こんにちは
今、visualC++でプログラムを作っています。
内容はsystem関数を使ってバッチファイルを呼び出すプログラムなのですが
int main(void){
system(tel.bat);
return 0;
}
バッチファイルの内容は
(1)telnet 192.168.○○○
(2)cd フォルダA
(3)test.exe
です。
作って実行してみると(1)の接続はできました。ですがその次の(2)、(3)は実行されませんでした。
どうしたらできるのでしょうか?できればtelnetで実行できるようにしたいです。
操作側 接続先
OS:windows7、windowsCE
よろしくお願いいたします。
回答 (1件)
- 最新から表示
- 回答順に表示
- ベストアンサーのみ表示
No.1ベストアンサー20pt
- 回答日時:2010/12/14 00:07
>バッチファイルの内容は
>(1)telnet 192.168.○○○
>(2)cd フォルダA
>(3)test.exe
>です。
>作って実行してみると(1)の接続はできました。ですがその次の(2)、(3)は実行されませんでした。
telnetコマンドが終了するまで、バッチファイルは次の処理に進みません。
サーバ側から切断させればtelnetコマンドが終了しますので、次の行のcdコマンド、およびtest.exeが『クライアントのローカル環境で』実行されます。
そういうバッチファイルになっています。
希望する動作は、telnetで接続して、サーバ側でディレクトリ移動とtest.exeを実行したいのではないですか?
telnetコマンドの標準入力に流し込めば動くかと思われますが…
# ただし、試したコトはありません。
バッチファイルではなく、CreateProcess()でプロセス起動して、標準入出力のパイプで操作する。
という方法もあります。
「CreateProcess パイプ」辺りで検索すると見つかるでしょう。
http://www.fpcu.jp/dosvcmd/bbs/log/cat1/4-0451.h …
こんなネタもあります。
他の方法としては…希望する処理を記述したTeraTermマクロを作成して、system()でそのマクロを実行する。
とかですかね。
たぶんこっちの方が簡単でしょう。
この回答へのお礼
回答ありがとうございます。
telnetコマンドが終了するまで次の命令に移らないんですね。
勉強になりました。
アドバイスしてくださったのを試してみます。ありがとうございました
このQ&Aを見た人はこんなQ&Aも見ています
注目の記事
えっ!こんな仕事があるの?
思わず「えっ!こんな仕事があるの?」と言いたくなる世間的に知られていない特殊な職業について迫ります。
このQ&Aを見た人がよく見るQ&A
このカテゴリで人気のQ&Aランキング
- 4初心者におすすめのC言語開発環境を...
- 5int型からchar型への変換
- 6int型配列の一括初期化
- 7C言語とC++ の違いについて(オブジ...
- 8.objファイル、.lib ファイルについて
- 9プロ野球の結果を教えてください
- 10C言語で簡単なゲームを作る方法
- 11ファイルやディレクトリの存在確認...
- 12c言語でできること
- 13sleep()関数について
- 14C++とVC++の違いについて
- 15#include <Windows.h>というヘッダ...
- 16size_t
- 17C言語でゲーム作り テトリス
- 18C言語を独学でマスターした人。。
- 19クロック周波数
- 20int main()、void main()、void mai...






