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 件のコメント:
コメントを投稿