[前の記事]« フォルダ構造のみコピーするには
[次の記事]ディレクトリの非存在のチェック »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「TELNET」索引へ
▲カテゴリー「こんなことは可能ですか?」索引へ
▲カテゴリー「バッチファイルの文法と環境変数」索引へ

バッチファイルでtelnetを操作したいのですが

451.
バッチファイルでtelnetを操作したいのですが
2005年05月12日(木) 14時55分
くるる
●DOS/Windowsのバージョン↓

WindowsXP

宜しくお願いします。
現在、UNIXマシーンにtelnetで接続してユーザ名パスワードを入力してログインしているのですが、この一連の操作をバッチファイルで行うことは可能でしょうか?

telnet ホスト名

までは、うまくバッチファイルに出来るのですが、そうするとtelnetが起動して、その後のユーザ名とパスワードを手で入力しなければなりません。
tlntadmnコマンドがあると・・・teratermのマクロがると・・訊いたのですが、管理者のアカウントは使用できないしteratermは入れない環境です。

なんとかBatファイルで済ませたいと思っております。
452.
Re:バッチファイルでtelnetを操作したいのですが
2005年05月12日(木) 16時47分
otn
>●DOS/Windowsのバージョン↓

>WindowsXP

>宜しくお願いします。
>現在、UNIXマシーンにtelnetで接続してユーザ名パスワードを入力してログインしているのですが、この一連の操作をバッチファイルで行うことは可能でしょうか?

>telnet ホスト名

>までは、うまくバッチファイルに出来るのですが、そうするとtelnetが起動して、その後のユーザ名とパスワードを手で入力しなければなりません。
>tlntadmnコマンドがあると・・・teratermのマクロがると・・訊いたのですが、管理者のアカウントは使用できないしteratermは入れない環境です。

>なんとかBatファイルで済ませたいと思っております。

標準コマンドだけでやりたいということですよね。rshを使うのがよいと思いますが、rshは検討されましたか?
(もしrshについてご存知無ければ再度質問ください)

rshが使えない環境だとすると、telnetで、VBS+WSH の sendkeys を使うくらいでしょうか。キー入力のシミュレーションなんでエラーや想定外の事象にはとても弱いです。サンプルは、
-----------testtelnet.bat------------------
start "ABC"
cscript testtel.vbs
-------------------------------------------

-----------testtel.vbs---------------------
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate "ABC"
WScript.Sleep 3000
WshShell.SendKeys "telnet ホスト名~"
WScript.Sleep 3000
WshShell.SendKeys "ユーザー名~"
WScript.Sleep 3000
WshShell.SendKeys "パスワード~"
WScript.Sleep 3000
WshShell.SendKeys "コマンド~"
WScript.Sleep 3000
WshShell.SendKeys "exit~"
--------------------------------------------
sleepの単位はミリ秒です。適宜調整ください。
一部の記号や特殊キーについては下記参照。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/wsmthsendkeys.asp

なお、tlntadmn は windows上のtelnetサーバーにログインする設定の変更コマンドなので今回は関係ありません。
458.
Re2:バッチファイルでtelnetを操作したいのですが
2005年05月13日(金) 10時52分
くるる
回答有難うございます。
VBSのことは初めて知りました。
こんな便利なものがあったのですね~~。

>標準コマンドだけでやりたいということですよね。rshを使うのがよいと思いますが、rshは検討されましたか?
>(もしrshについてご存知無ければ再度質問ください)

クライアントが出来るだけ面倒なコマンド操作なしでバッチファイルを叩くだけでパスワード変更できるような便利なバッチファイルを作りたいと思っております。

>rshが使えない環境だとすると、telnetで、VBS+WSH の sendkeys を使うくらいでしょうか。

教えていただいた方法でやってみたのですが
「telnet ホスト~」
後、コマンドラインであれば、別窓が開いてログイン画面が出るのですが、別窓は開かずプロンプトが現在の窓に返ってきてしまいます。
例えば、別のバッチファイルで「telnet ホスト」で開いておいて、その窓にVBSを使用して入力をする・・という方法はあるのでしょうか?
462.
Re3:バッチファイルでtelnetを操作したいのですが
2005年05月13日(金) 15時15分
otn
>クライアントが出来るだけ面倒なコマンド操作なしでバッチファイルを叩くだけでパスワード変更できるような便利なバッチファイルを作りたいと思っております。

rsh が使えるならそのほうがよいと思います。sendkeysだとエラーがわからない。

>教えていただいた方法でやってみたのですが
>「telnet ホスト~」
>後、コマンドラインであれば、別窓が開いてログイン画面が出るのですが、別窓は開かずプロンプトが現在の窓に返ってきてしまいます。
>例えば、別のバッチファイルで「telnet ホスト」で開いておいて、その窓にVBSを使用して入力をする・・という方法はあるのでしょうか?

すいませんが、かかれている意味がよくわかりません。
前回書いたのは、「testtelnet.bat から start "ABC" であらたにABCというタイトルのコマンドプロンプト画面を開いて、AppActivate で、ABCというタイトルのウィンドウをアクティブにし、そこにsendkeysする」というやりかたです。
すでに開いているコマンドプロンプトを使いたいということなら、そのウィンドウにユニークなタイトルがついていれば、そのタイトルをAppActivate すればできます。(コマンドプロンプトウィンドウのタイトルは title コマンドで変更できます)
471.
Re4:バッチファイルでtelnetを操作したいのですが
2005年05月16日(月) 10時18分
くるる
有難うございます。
レスの中に私の知りたかった内容がありました。
とてもとても参考になりました。↓

>すでに開いているコマンドプロンプトを使いたいということなら、そのウィンドウにユニークなタイトルがついていれば、そのタイトルをAppActivate すればできます。

ですが・・
DOS窓でtelnetコマンを実行すると、telnetのプログラムが起動して別の窓(ウインドウ)が開きログオン画面が表示されるようです。
教えてきたいたスクリプトで実行すると、"ABC"コマンドプロンプトに"telnet ホスト"を実行したあと、別にtelnetのウインドウが開くのですが、スクリプトは、"ABC"コマンドプロンプト画面に入力されてしまいます。開いたtelnetのウインドウに入力させるにはどのようにすればよいのでしょう??
473.
Re5:バッチファイルでtelnetを操作したいのですが
2005年05月16日(月) 11時18分
くるる
先ほどの追加です。
スクリプトを変更して

WshShell.SendKeys "telnet kids~"

WScript.Sleep 3000
WshShell.SendKeys "ユーザ名~"
の間にtelnetのウインドウをアクティブにすべく

WScript.Sleep 3000
WshShell.AppActivate "telnet kids"
を入れてみたのですがうまくいきませんでした。
475.
Re5:バッチファイルでtelnetを操作したいのですが
2005年05月16日(月) 14時42分
otn
>ですが・・
>DOS窓でtelnetコマンを実行すると、telnetのプログラムが起動して別の窓(ウインドウ)が開きログオン画面が表示されるようです。
>教えてきたいたスクリプトで実行すると、"ABC"コマンドプロンプトに"telnet ホスト"を実行したあと、別にtelnetのウインドウが開くのですが、スクリプトは、"ABC"コマンドプロンプト画面に入力されてしまいます。開いたtelnetのウインドウに入力させるにはどのようにすればよいのでしょう??


過去ログでOSを再確認しましたが、WinXPなんですよね?
Win2000やWinXPのtelnetはコマンドプロンプトで起動するとそのコマンドプロンプト内で動きます(Win9x/Meだと別ウィンドウでWinアプリとしてtelnetが動きますが)。別ウィンドウが開くということは、XP標準で無いtelnetがインストールされていてそちらが動いているのでは?

C:\Windows\system32\telnet.exe とフルパスで起動したら変わりますか?

また、今動いている非標準のtelnetを使うとすると、AppActivateが効いてないのは、ウィンドウタイトルが違っているためと思われます。スペースの数とか記号や半角全角とか、ウインドウのタイトルバー部分をよく見てそのとおりにAppActivateで指定してください。
476.
Re6:バッチファイルでtelnetを操作したいのですが
2005年05月16日(月) 18時38分
otn
>また、今動いている非標準のtelnetを使うとすると、AppActivateが効いてないのは、ウィンドウタイトルが違っているためと思われます。スペースの数とか記号や半角全角とか、ウインドウのタイトルバー部分をよく見てそのとおりにAppActivateで指定してください。

この部分ですが、
タイトルバーの表示が、「プログラム名 - 文書名」とか「文書名 - プログラム名」のようになっているときは、AppActivate で指定するのは、(1)表示されているまったくその通り(2)プログラム名(3)文書名のどれでも良いようですね。もちろんユニークにならない場合はどれがアクティベートされるかはわかりませんが。
480.
Re6:バッチファイルでtelnetを操作したいのですが
2005年05月18日(水) 13時55分
くるる
OTCさんお世話になっております。

普通にコマンドプロンプトを起動するとtitle「コマンドプロンプト」というウインドウが開きます。そこに"telnet"と入力すると、ウインドウが一旦閉じたような動作の後、再びtitleが「コマンドプロンプト-telnet」というウインドウが開くように思うのです。
ウインドウは増えません。

バッチファイルで「start "ABC"」の部分を実行させると、
タイトルが「ABC」というコマンドプロンプトが動きます。
そこに手入力で"telnet"と入力しても"telnet ホスト"と入力しても後ろに「ABC-telnet」というウインドウが一旦新たにできて、再び「ABC」というウインドウがアクティブになります。「ABC-telnet」のウインドウは「ABC」というtitleに変更されます。この動作を繰り返すと、どんどん新しいウインドウが増えてゆきます。

ここにスクリプトで"SendKeys"すると、「ABC」コマンドプロンプトのウインドウに文字が入力され「そのようなコマンドはありません」のような表示になります。


そこで・・・お教えいただいたことを参考に、「ABC-telnet」をアクティベートすれば出来そうなのですが、時既に遅しで・・前述のように「ABC-telnet」の窓は「ABC」に戻ってしまいます。


以前頂いたスクリプトとバッチファイルです。

-----------testtelnet.bat------------------
start "ABC"
cscript testtel.vbs
-------------------------------------------

-----------testtel.vbs---------------------
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate "ABC"
WScript.Sleep 3000
WshShell.SendKeys "telnet ホスト名~"
WScript.Sleep 3000
WshShell.SendKeys "ユーザー名~"
WScript.Sleep 3000
WshShell.SendKeys "パスワード~"
WScript.Sleep 3000
WshShell.SendKeys "コマンド~"
WScript.Sleep 3000
WshShell.SendKeys "exit~"
--------------------------------------------
481.
Re7:バッチファイルでtelnetを操作したいのですが
2005年05月18日(水) 14時18分
otn
>普通にコマンドプロンプトを起動するとtitle「コマンドプロンプト」というウインドウが開きます。そこに"telnet"と入力すると、ウインドウが一旦閉じたような動作の後、再びtitleが「コマンドプロンプト-telnet」というウインドウが開くように思うのです。
>ウインドウは増えません。

そういう現象ですか。それはいったん画面クリアしているだけです。閉じて開いているわけではありません。タイトルが変わるのは、例えば、
dir %windir% /p
等とうつと、dirコマンド実行中だけタイトルが一時的に変わり、コマンドが終了すると元に戻ります。

>バッチファイルで「start "ABC"」の部分を実行させると、
>タイトルが「ABC」というコマンドプロンプトが動きます。
>そこに手入力で"telnet"と入力しても"telnet ホスト"と入力しても後ろに「ABC-telnet」というウインドウが一旦新たにできて、再び「ABC」というウインドウがアクティブになります。「ABC-telnet」のウインドウは「ABC」というtitleに変更されます。この動作を繰り返すと、どんどん新しいウインドウが増えてゆきます。

バッチファイルの名前をtesttelnet.batじゃなくてtelnet.batにしているとそういう現象になりそうな気がしますが、大丈夫ですか?
その場合は、スクリプト中の「telnet」を「telnet.exe」にしてください。一般に、標準コマンドと同名のバッチファイルを作ると(それに気づかないと)非常に理解しにくい現象が起こることが多いです。
501.
Re8:バッチファイルでtelnetを操作したいのですが
2005年05月20日(金) 14時50分
くるる
>バッチファイルの名前をtesttelnet.batじゃなくてtelnet.batにしているとそういう現象になりそうな気がしますが、大丈夫ですか?


(;;'(ェ)')ノ
・・・し・・してます・・・。

>その場合は、スクリプト中の「telnet」を「telnet.exe」にしてください。一般に、標準コマンドと同名のバッチファイルを作ると(それに気づかないと)非常に理解しにくい現象が起こることが多いです。

とても有難うございます。
解決いたしました・・・。
 
 
 


カテゴリー「TELNET」索引へ
カテゴリー「こんなことは可能ですか?」索引へ
カテゴリー「バッチファイルの文法と環境変数」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2005年05月12日 01:43に投稿されたエントリーのページです。

ひとつ前の投稿は「フォルダ構造のみコピーするには」です。

次の投稿は「ディレクトリの非存在のチェック」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
 
このブログについて | 運営:有限会社メディアポート