import Poderosa; import Poderosa.ConnectionParam; import Poderosa.Terminal; import Poderosa.Macro; import Poderosa.View; import System.Threading; var env = new Environment(); // hosts info var hosts = [{ hostname: 'hostname', ip: 'xxx.xxx.xxx.xxx', id: 'username', pass: 'password', cmd: 'ls -ltr', title: 'ls' } ] // Login var l = hosts.length; for (var i = 0; i < l; i++) { var con = connect(hosts[i].hostname, ConnectionMethod.SSH2, 22, EncodingType.UTF8, hosts[i].id, hosts[i].pass, hosts[i].title); wait("$"); sendln(hosts[i].cmd); } function sendln(s) { con.TransmitLn(s); } function wait(s) { Thread.Sleep(10); var res = con.ReceiveData(); while(res.indexOf(s) == -1) { Thread.Sleep(10); res += con.ReceiveData(); } } function connect(host, method, port, encoding, id, password, title) { var param = new SSHTerminalParam(method, host, id, password); param.Caption = title+"["+host+"]"; param.Port = port; param.Encoding = encoding; var connection = env.Connections.Open(param); return connection; }
wait("$")は「$」という文字列が表示されるまで待つメソッドです
たまーに動作しないこともあるので、Thread.Sleep(5000);とかで普通に5秒止めたほうがいい場合もあります
sendlnメソッドは引数で渡したコマンドを実行するメソッドです
あとは以下をダウンロードしてPoderosaにマクロを登録するだけです
http://www.poderosa.org/download/plugins/Macro402.tar.gz
マクロの登録方法は検索すれば出てくると思いますw
参考までに
0 件のコメント:
コメントを投稿