-PR-
  • すぐに回答を!
  • 質問No.6382978
解決
済み

telnetで接続先の操作方法について

  • 閲覧数848
  • ありがとう数2
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 93% (28/30)

こんにちは
今、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
  • 気になる数0

質問者が選んだベストアンサー

  • 回答No.1
レベル14

ベストアンサー率 53% (2177/4068)

>バッチファイルの内容は
>(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.html
こんなネタもあります。

他の方法としては…希望する処理を記述したTeraTermマクロを作成して、system()でそのマクロを実行する。
とかですかね。
たぶんこっちの方が簡単でしょう。
お礼コメント
708wildcat

お礼率 93% (28/30)

回答ありがとうございます。
telnetコマンドが終了するまで次の命令に移らないんですね。
勉強になりました。
アドバイスしてくださったのを試してみます。ありがとうございました
投稿日時 - 2010-12-28 14:18:29
  • ありがとう数0
-PR-
-PR-
  • 回答数1
  • 気になる数0
このQ&Aで解決しましたか?

関連するQ&A

-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


-PR-

ピックアップ

-PR-
ページ先頭へ