学海无涯

我愿穷尽一生来了解这个世界 Explore the World All My Life

  博客园 :: 首页 :: 联系 :: 订阅 订阅 :: 管理
  2 Posts :: 0 Stories :: 2 Comments :: 0 Trackbacks

公告

2010年9月22日 #

      实验室有一台作为打印服务器的破电脑,系统XP。可是大家晚上回去时经常忘记关机,有时开上好几天。只是作为打印用,也就是白天有人用时才开吧,没必要提供7x24这样的服务吧。一天我在我的寝室的Debian机上装了个iptux玩。这个软件的优点就是可以添加其他网段的邻居,我就把我们实验室的网段加上了。结果发现都快0:00了机子上的飞鸽(UM2010)还是在线,这样说他们又没有关机了,又要白白的浪费电了。能不能实现远程关机,这时我并没有想用常规的远程关机,我想自己借助飞鸽这个平台加上一些自己写的脚本实现该功能。

      其实思路很简单,每当飞鸽收到信息时,会有日志文件记录所有的通信内容。如果我在该机子上一直检测这个日志文件,那么当检测到被定义为关机命令的字符串时就关机,这样就可以了。

 

1 @echo off
2
3  cd C:\UMFG\UMData
4
5 del UM.Mdb
6
7 start C:\\UMFG\\UM.exe
8
9 ping -n 5 127.0.0.1 >NUL 2>NUL
10
11
12 :again
13
14
15 findstr shutdown UM.Mdb >nul && shutdown -s -t 3
16
17 findstr reboot UM.Mdb >nul && shutdown -r -t 3
18
19 ping -n 5 127.0.0.1 >NUL 2>NUL
20
21
22 goto again

 

      该脚本首先是删除旧数据文件,然后启动飞鸽程序,ping相关的命令是延时用的,查找用的是系统的findstr。由于对bat脚本不熟,原以为findstr会返回某个布尔值,想不到查了半天原来是用&&来实现判断执行。这样把该脚本添加加在开机启动中,以后在别处用飞鸽看到该机器在运行时就可以将其shutdown或者reboot。

      不过脚本运行后一直会有一个CMD黑屏的窗口在等待,很不爽,最后在网上找到了可以将其调用写在vbs文件中,这样就安静多了。

 

1 createobject("wscript.shell").run "C:\UMFG\UMData\halt.bat",0

 

      最终将该vbs文件添加到注册表的启动项里面就可以了。

      不过这种方法,实在不怎么美,听同学说操作系统中有进程这东西专门用来应对外来的响应,我对操作系统也不懂。不过单片机也有两种应对外面响应的,一种就是类似该例中的一直循环不断判断,另一种就是中断了,应该就是类似与服务和进程这东西了。

      最后,bat真的没法和Linux的shell比,bat脚本太丑陋了。

posted @ 2010-09-22 20:34 绿豆蛙 阅读(281) 评论(1) 编辑

2010年8月9日 #

      校园网连外网每次都需要在一个www(auth.cau.edu.cn)网页中输入帐号和密码来连接,很不爽,

在校BBS里面找到的了各种版本的自动连接程序,很遗憾大多为EXE文件,没有提供源码,根据别人的

思路和方法,自己写了一个bat脚本文件,简单,直观,当然绝对无后门。

 

1 @echo off
2
3  set Username=填上学号
4  set Password=填上密码
5
6 @rem 断开所有连接
7  explorer "http://auth.cau.edu.cn/ipgw/ipgw.ipgw?uid=%Username%&&password=%Password%&&range=2&&timeout=1&&operation=disconnectall"
8 @rem 延时1s
9 ping -n 2 127.0.0.1 >NUL 2>NUL
10 @rem 结束浏览器
11 taskkill /im iexplore.exe
12
13 @rem 开始本机连接
14 explorer "http://auth.cau.edu.cn/ipgw/ipgw.ipgw?uid=%Username%&&password=%Password%&&range=2&&timeout=1&&operation=connect"
15 ping -n 2 127.0.0.1 >NUL 2>NUL
16 taskkill /im iexplore.exe

 

      把它放在 启动 目录下,这样开机就首先断开在其他地方的连接并连上本机。不过有个问题是安

全性不够,密码是纯文本格式的,于是想把bat转成exe,结果下了个试用版的ExeScript,编译的程

序运行时还要Press any key才行,这不爽,再者,在浏览器的历史中还是存在密码的明文。算了吧,

文就明文吧,也不是多么重要的密码,方便使用就好。

 

 

posted @ 2010-08-09 00:59 绿豆蛙 阅读(283) 评论(1) 编辑