こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

自動でtelnet

お世話になります。
ボタンクリックすると自動でTelnetを起動しコマンドを投げてtelnetを終了する...処理を作っています。
telnet接続からの操作はvbsで作成、
そのvbsをbatfileで起動するようにしました。
古いパソコン環境で動かす(32bit)というので、あえてvc++6.0で作成し正常に、動きました。
それを64bitのWindows2012で動かしたら、vbsの中のtelnetの接続のところでエラーになります。
 'telnet'は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチファイルとして認識されていません
と、なります。
telnet clientはinstallしてあり、
コマンドプロンプトでbatファイルをたたくとちゃんと正常に動きます。
batファイルをダブルクリックでも動きます。
コマンドプロンプトでcscript xxx.vbs  としても正しく動きます。

プログラムから CreateProcessで、「cmd xxx.bat」としているのですが。。。

どこが間違ってるのか、何がダメなのか判断が付かないのです。
至急アドバイスをいただけないでしょうか。
よろしくお願いいたします。

投稿日時 - 2017-11-27 12:00:11

QNo.9401862

すぐに回答ほしいです

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

32bitのコマンドプロンプトでは、Windows\System32にアクセスしても実際にはWindows\SysWOW64にリダイレクトされます。そのため、telnet.exeがみつからない状況になります。
32bitプログラムからWindows\System32にアクセスする場合は、Windows\Sysnativeを指定しなければなりません。

バッチファイルの最初に

PATH=%PATH%;%WINDIR%\Sysnative

としてパスを追加してみたらどうでしょうか。

投稿日時 - 2017-11-27 18:40:48

お礼

m-take0220 さま
ありがとうございます!

なるほど~、手動だとWindows\System32のコマンドプロンプトのが起動して動くが、32bitプログラムからだとリダイレクトされて、見つからないってことなんですね。早速試してみます!

投稿日時 - 2017-11-27 23:22:46

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問