当前位置:首页 » 编程软件 » 脚本自动登录

脚本自动登录

发布时间: 2024-11-29 09:55:27

‘壹’ 如何用expect写一个自动登录脚本

1.安装expect

需要先安装tcl:apt-get install tcl

apt-get install expect

2.expect使用

2.1一个简单的输入密码操作

#!/usr/bin/expect

set timeout 100

set password "123456"

spawn sudo rm -rf zzlogic

expect "root123456"

send "$password "

interact

说明:

第一行#!/usr/bin/expect表示使用expect的shell交互模式

set是对变量password赋值

set timeout 100:设置超时时间为100秒,如果要执行的shell命令很长可以设置超时时间长一些。expect超过超时时间没有监测到要找的字符串,则不执行,默认timeout为10秒

spawn在expect下执行shell脚本

expect对通过spawn执行的shell脚本的返回进行判断,是否包含“”中的字段

send:如果expect监测到了包含的字符串,将输入send中的内容, 相当于回车

interact:退出expect返回终端,可以继续输入,否则将一直在expect不能退出到终端

2.2expect的命令行参数

[lindex $argv n]获得index为n的参数(index从0开始计算)

$argc为命令行参数的个数

[lrange $argv 0 0]表示第一个参数

[lrange $argv 0 3]表示第1到第3个参数

例如scp_service.sh文件,可以./scp_service.sh -rm来执行,这时是赋值了一个参数

set option [lindex $argv 0](获得第一个参数存到变量option中,参数是的index是从0开始计算的)

2.3if...elif...else...

expect支持if语句,

if {条件1} {

条件1执行语句

} elif {条件2} {

条件2执行语句

} else {

其他情况执行语句

}

说明:

1.if的条件用{}来包含条件

2.if和后面的{}必须有空格隔开

3.两个花括号之间必须有空格隔开,比如if {} {},否则会报错 expect:extra characters after close-brace

3.使用{来衔接下一行,所以if的条件后需要加左花括号{

4.else不能单独放一行,所以else要跟在}后面

2.4 expect {},多行期望,匹配到哪条执行哪条

背景:有时执行shell后预期结果是不固定的,有可能是询问是yes/no,有可能是去输入密码,所以可以用expect{}

花括号内放多行语句,从上至下匹配,匹配到哪个expect执行哪句。

3.shell中调用expect来实现登录

我是通过在shell脚本中执行expect脚本的方式来实现的。当然可以将shell中定义的一些变量传递给expect脚本作为参数输入。

‘贰’ 怎么写一个批处理,能让他自动登录.

批处理汪猜达不到你的要,因为涉及到SOCKS数据传送,或许你可以利用VB来编写这么一个程序困仿型。
另外,你可以看看这个网站是否支持 保存COOKIS 记录,某些论坛,网站登大竖录时可以选择一个登录有效时间,来保存你的登录信息。

‘叁’ BAT高手,帮我编写一个自动登录“百度知道”账号的脚本

@echo off
set /p o=输入用户名:
set /p k=输入密码:
start iexplore "http://passport..com/?login&tpl=mn&u=http%3A//www..com/"
echo Set WshShell = WScript.CreateObject("WScript.Shell")>>网络自动登入.vbs
echo WScript.Sleep 2000>>网络自动登入.vbs
echo WScript.Sleep 1000 '没事要延时,不然要出问题>>网络自动登入.vbs
echo wScript.Sleep 1000>>网络自动登入.vbs
echo WshShell.SendKeys "%o%">>网络自动登入.vbs
echo wScript.Sleep 100>>网络自动登入.vbs
echo WshShell.SendKeys "{TAB}">>网络自动登入.vbs
echo wScript.Sleep 100>>网络自动登入.vbs
echo WshShell.SendKeys "%k%">>网络自动登入.vbs
echo wScript.Sleep 100>>网络自动登入.vbs
echo WshShell.SendKeys "{ENTER}">>网络自动登入.vbs
网络自动登入.vbs
exit

保存为*.bat

热点内容
qq的账号密码到底是什么 发布:2025-03-15 12:45:48 浏览:763
c语言读取wav 发布:2025-03-15 12:45:44 浏览:558
iphone限制密码忘了怎么办 发布:2025-03-15 12:40:53 浏览:818
如何取消信用卡密码锁 发布:2025-03-15 12:33:34 浏览:908
加密文件库 发布:2025-03-15 12:31:44 浏览:567
爱叉三五买哪个配置好 发布:2025-03-15 12:30:18 浏览:737
mavendebug源码 发布:2025-03-15 12:17:45 浏览:155
访问学者的要求 发布:2025-03-15 12:10:53 浏览:556
学编程难吗 发布:2025-03-15 12:07:00 浏览:75
我的世界国际服务器怎么汉化 发布:2025-03-15 12:02:21 浏览:297