xshell 允許集成 js py vbs 腳本
轉(zhuǎn)載請注明出處:https://blog.csdn.net/xuezoutianya/article/details/81605604
在編寫xshell腳本的過程中用到最多的就是自動輸入候引,自動捕獲犁跪,延時等語句
自動輸入
以自動輸入xyz為例
自動輸入的語句:xsh.Screen.Send("xyz");
當然,如果你輸入的是一條命令肺樟,還需要下面這一行輸入回車
輸入回車的語句:xsh.Screen.Send(String.fromCharCode(13));
自動捕獲
以linux系統(tǒng)為例,一般程序執(zhí)行的打印數(shù)據(jù)位于倒數(shù)第二行氯材,如下圖所示
/* 字符串處理 */
var ScreenRow, ReadLine, Items;
/* 讀取倒數(shù)第二行宋距,長度為40個字符 */
ScreenRow = xsh.Screen.CurrentRow - 1;
ReadLine = xsh.Screen.Get(ScreenRow, 1, ScreenRow, 40);
延時
以等待1s為例
延時語句:xsh.Session.Sleep(1000);
其他
打開新會話:xsh.Session.Open(string);
對話框提醒:xsh.Dialog.MsgBox(string);
設(shè)置日志路徑:xsh.Session.LogFilePath = string;
開始記錄日志:xsh.Session.StartLog();
清屏函數(shù):xsh.Screen.Clear();
等待輸入:xsh.Screen.WaitForString(string);
示例
本文以一個自動測試腳本為例,定時向/tmp/test文件寫入數(shù)據(jù)汤踏,然后回讀打印,截獲回讀打印的值進行分析
/* 測試函數(shù) /
function test()
{
/ 發(fā)送echo 112233 > /tmp/testfile */
xsh.Screen.Send("echo 112233 > /tmp/testfile");
xsh.Screen.Send(String.fromCharCode(13));
/* 發(fā)送cat /tmp/testfile */
xsh.Screen.Send("cat /tmp/testfile");
xsh.Screen.Send(String.fromCharCode(13));
/* 字符串處理 */
var ScreenRow, ReadLine, Items;
/* 讀取末行的40個字符 */
ScreenRow = xsh.Screen.CurrentRow - 1;
ReadLine = xsh.Screen.Get(ScreenRow, 1, ScreenRow, 40);
/* 如果讀取到的字符不是112233 */
if(ReadLine != "112233")
{
/* 會話框打印實際的字符串 */
xsh.Dialog.MsgBox(ReadLine);
}
}
/* 主函數(shù) /
function Main()
{
/ 打開會話哨免,根據(jù)實際的會話路徑修改 */
xsh.Session.Open("C:\Users\Administrator\Documents\NetSarang Computer\6\Xshell\Sessions\ubuntu.xsh");
xsh.Screen.Synchronous = true;
/* 開始記錄日志 */
xsh.Session.LogFilePath = "C:\Users\Administrator\Documents\NetSarang Computer\6\Xshell\Logs\example.log";
xsh.Session.StartLog();
/* 等待輸入start */
// xsh.Screen.WaitForString("start");
/* 發(fā)送rm -rf /tmp/testfile */
xsh.Screen.Send("rm -rf /tmp/testfile");
/* 發(fā)送回車 */
xsh.Screen.Send(String.fromCharCode(13));
/* 發(fā)送touch /tmp/testfile */
xsh.Screen.Send("touch /tmp/testfile");
xsh.Screen.Send(String.fromCharCode(13));
/* 測試100次 */
for(var i = 1; i < 100; i++)
{
test();
xsh.Session.Sleep(500);
}
/* 清屏 */
// xsh.Screen.Clear();
}
運行腳本的操作:
實際執(zhí)行結(jié)果如下:
轉(zhuǎn)載請注明出處:https://blog.csdn.net/xuezoutianya/article/details/81605604
在編寫xshell腳本的過程中用到最多的就是自動輸入茎活,自動捕獲,延時等語句
自動輸入
以自動輸入xyz為例
自動輸入的語句:xsh.Screen.Send("xyz");
當然琢唾,如果你輸入的是一條命令载荔,還需要下面這一行輸入回車
輸入回車的語句:xsh.Screen.Send(String.fromCharCode(13));
自動捕獲
以linux系統(tǒng)為例,一般程序執(zhí)行的打印數(shù)據(jù)位于倒數(shù)第二行采桃,如下圖所示
/* 字符串處理 */
var ScreenRow, ReadLine, Items;
/* 讀取倒數(shù)第二行懒熙,長度為40個字符 */
ScreenRow = xsh.Screen.CurrentRow - 1;
ReadLine = xsh.Screen.Get(ScreenRow, 1, ScreenRow, 40);
延時
以等待1s為例
延時語句:xsh.Session.Sleep(1000);
其他
打開新會話:xsh.Session.Open(string);
對話框提醒:xsh.Dialog.MsgBox(string);
設(shè)置日志路徑:xsh.Session.LogFilePath = string;
開始記錄日志:xsh.Session.StartLog();
清屏函數(shù):xsh.Screen.Clear();
等待輸入:xsh.Screen.WaitForString(string);
示例
本文以一個自動測試腳本為例,定時向/tmp/test文件寫入數(shù)據(jù)普办,然后回讀打印工扎,截獲回讀打印的值進行分析
/* 測試函數(shù) /
function test()
{
/ 發(fā)送echo 112233 > /tmp/testfile */
xsh.Screen.Send("echo 112233 > /tmp/testfile");
xsh.Screen.Send(String.fromCharCode(13));
/* 發(fā)送cat /tmp/testfile */
xsh.Screen.Send("cat /tmp/testfile");
xsh.Screen.Send(String.fromCharCode(13));
/* 字符串處理 */
var ScreenRow, ReadLine, Items;
/* 讀取末行的40個字符 */
ScreenRow = xsh.Screen.CurrentRow - 1;
ReadLine = xsh.Screen.Get(ScreenRow, 1, ScreenRow, 40);
/* 如果讀取到的字符不是112233 */
if(ReadLine != "112233")
{
/* 會話框打印實際的字符串 */
xsh.Dialog.MsgBox(ReadLine);
}
}
/* 主函數(shù) /
function Main()
{
/ 打開會話,根據(jù)實際的會話路徑修改 */
xsh.Session.Open("C:\Users\Administrator\Documents\NetSarang Computer\6\Xshell\Sessions\ubuntu.xsh");
xsh.Screen.Synchronous = true;
/* 開始記錄日志 */
xsh.Session.LogFilePath = "C:\Users\Administrator\Documents\NetSarang Computer\6\Xshell\Logs\example.log";
xsh.Session.StartLog();
/* 等待輸入start */
// xsh.Screen.WaitForString("start");
/* 發(fā)送rm -rf /tmp/testfile */
xsh.Screen.Send("rm -rf /tmp/testfile");
/* 發(fā)送回車 */
xsh.Screen.Send(String.fromCharCode(13));
/* 發(fā)送touch /tmp/testfile */
xsh.Screen.Send("touch /tmp/testfile");
xsh.Screen.Send(String.fromCharCode(13));
/* 測試100次 */
for(var i = 1; i < 100; i++)
{
test();
xsh.Session.Sleep(500);
}
/* 清屏 */
// xsh.Screen.Clear();
}
運行腳本的操作:
實際執(zhí)行結(jié)果如下: