Board logo

标题: [其他] 批处理版链接监视器 [打印本页]

作者: garyng    时间: 2011-8-13 23:11     标题: 批处理版链接监视器

本帖最后由 garyng 于 2011-8-22 20:17 编辑

6-8-2011
为了实践这几个星期在本论坛学的批处理知识
又因为我的弟弟要考试了~
心血来潮
便编写了此程序:链接监视器


主程序:
——————————————链接监视器——————————————
  1. @Echo Off&SetLocal EnableDelayedExpansion&mode con: cols=60 lines=25&color 0A
  2. (for /l %%a in (1 1 1) do set /p ver=)<更新历史.txt
  3. title 链接监视器 !ver! &echo               *****************************&echo                      链接监视器!ver!  &echo                  由GaryNg呕心沥血制作     &echo               *****************************
  4. rem 文件检查
  5. IF EXIST DisableExit.exe (echo DisableExit.exe存在) ELSE (color 0C&echo DisableExit.exe不存在&goto ex)
  6. rem 禁止关闭的功能
  7. DisableExit.exe
  8. IF EXIST BeeNotice.exe (echo BeeNotice.exe存在) ELSE (color 0C&echo BeeNotice.exe不存在&goto ex)
  9. IF EXIST 后台计时.exe (echo 后台计时.exe存在) ELSE (color 0C&echo 后台计时.exe不存在&goto ex)
  10. IF EXIST 设置.ini (echo 设置.ini存在) ELSE (ping 127.1 -n 3 >nul 2>nul&cls&goto 1run)
  11. IF EXIST 按键模拟.vbs (echo 按键模拟.vbs存在) ELSE (ping 127.1 -n 3 >nul 2>nul&cls&goto 1run)
  12. echo 所有的重要文件都在!&ping 127.1 -n 2 >nul 2>nul&cls&echo 加载中,请稍等....
  13. rem 变量设置
  14. rem ip地址
  15. (for /l %%a in (1 1 1) do set /p iip=)<设置.ini
  16. rem 链接名字
  17. (for /l %%a in (1 1 2) do set /p lname=)<设置.ini
  18. rem 哈哈~密码~
  19. (for /l %%a in (1 1 6) do set /p pass=)<设置.ini
  20. for /f "delims=, tokens=5" %%V in ('echo !pass!') do (set passs=%%V)
  21. rem 再次运行的计时器
  22. tasklist|findstr "后台计时" >nul 2>nul||start 后台计时.exe
  23. rem 主程序
  24. :main
  25. netstat -an |find /i "!iip!" >nul 2>nul||goto noddt
  26. echo 程序发现有人开启!lname!
  27. findstr "!date!" ddt.log >nul 2>nul||echo !date!>>ddt.log
  28. echo %time%   程序发现有人在%username%的电脑开启了!lname!>>ddt.log
  29. echo 现在进行身份确认&ping 127.1 -n 2 >nul 2>nul&cls
  30. IF EXIST lk.ms (echo 离开模式已开启&echo 并马上进行惩罚!!&ping 127.1 -n 2 >nul 2>nul&goto ddt ) ELSE (echo 离开模式没开启)
  31. rem 要输入密码~
  32. set b=5
  33. :pwd
  34. title 密码验证:
  35. set /a a=!a!+1
  36. set /a b=!b!-1
  37. set pwd=password
  38. set pwd=""
  39. set /p pwd=[请输入密码]
  40. if /i "!pwd!"=="!passs!" goto admin
  41. if /i "!a!"=="5" echo 错误次数达到五次!!&ping 127.1 -n 2 >nul 2>nul&goto ddt
  42. echo 错误 !a! 次!&echo 您还有 !b! 次机会!&goto pwd
  43. rem 惩罚部分
  44. :ddt
  45. title 现在进行惩罚!!!&start 按键模拟.vbs
  46. set p=████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████\n
  47. BeeNotice.exe  /m:"!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!!p!" /x:0 /y:0 /t:30000 /o:200 /ftc:"0 0 0"
  48. exit
  49. rem 没人开链接
  50. :noddt
  51. IF EXIST lk.ms (echo 离开模式已开启) ELSE (echo 离开模式没开启)
  52. echo 没人开!lname!&goto ex
  53. REM 管理员
  54. :admin
  55. cls&echo          身份被确认!!你可以继续~对不起麻烦你咯~ &echo             进入离开模式按1,查看更新历史按2&echo                 查看ddt.log按3,退出按0
  56. set /p ad=[离开模式按1,新历史按2,ddt.log按3,退出按0]
  57. if /i "!ad!"=="" goto admin
  58. if /i "!ad!"=="1" goto lkms
  59. if /i "!ad!"=="0" goto ex
  60. if /i "!ad!"=="2" cls&more 更新历史.txt&pause>nul&exit
  61. if /i "!ad!"=="3" cls&more ddt.log&pause>nul&exit
  62. rem 离开模式
  63. :lkms
  64. cls&echo 现在是离开模式...&echo                    离开模式介绍&echo         离开模式是当程序检测到!lname!的链接存在时&echo             会不管三七二十一的进行“惩罚”&echo                 如果你要关闭离开模式,&echo             就直接把目录下的lk.ms删除掉!&echo                否则你是进不来这里的&echo             所以这里也没有关闭离开模式的选项&echo               开启离开模式按1,退出按0
  65. set /p lkms=[开启=1,退出=0]
  66. if /i "!lkms!"=="" goto lkms
  67. if /i "!lkms!"=="1" goto openlkms
  68. if /i "!lkms!"=="0" goto ex
  69. rem 开启离开模式
  70. :openlkms
  71. IF EXIST lk.ms color 0C&echo 离开模式已开启!! 真难以想象你是怎样进来的?!
  72. echo 确定开启按1,退出按0
  73. set /p open=[确定=1,退出=0]
  74. if /i "!open!"=="" goto openlkms
  75. if /i "!open!"=="0" goto ex
  76. if /i "!open!"=="1" echo/ > lk.ms
  77. echo 完成!&cls&echo                     切记,切记&echo                如果要关闭离开模式,&echo  就把就直接把目录下的lk.ms删除掉(否则你也会中招)!!&goto ex
  78. rem 初次运行向导
  79. :1run
  80. echo               *****************************&echo                       初次运行向导  &echo               *****************************&echo 步骤一:
  81. :link
  82. echo 请输入需要监视的链接(不包括http://)&echo 例子:&echo www.baidu.com
  83. set /p linkset=[请输入]
  84. if /i "!linkset!"=="q" goto ex
  85. echo 你输入的是!linkset!
  86. set /p q=[确定=1,重新输入=2]
  87. if /i "!q!"=="" goto link
  88. if /i "!q!"=="2" goto link
  89. if /i "!q!"=="1" goto ip
  90. color 0C&echo 你输入无效&goto link
  91. :ip
  92. echo 正在ping !linkset!...
  93. ping -n 1 !linkset! > ip.txt |find /i "ping request" && goto pingg
  94. (for /l %%a in (1 1 6) do set /p ip=)<ip.txt
  95. set wip=!ip: =,!
  96. for /f "delims=, tokens=3" %%Q in ('echo !wip!') do (set cip=%%Q)
  97. set sip=!cip:[=!
  98. find /i "[." ip.txt >nul 2>nul&& goto pingg
  99. for /f "tokens=1-3 delims=." %%L in ('echo !sip!') do (echo 正在将设置写入文件...&echo %%L.%%M.%%N>>设置.ini&del ip.txt&ping 127.1 -n 3 >nul 2>nul&cls)
  100. echo 步骤二:
  101. :linkn
  102. echo 请输入链接的名称(可以任取)
  103. set /p linkname=[请输入名称]
  104. if /i "!linkname!"=="q" goto ex
  105. echo 你输入的是!linkname!
  106. set /p e=[确定=1,重新输入=2]
  107. if /i "!e!"=="" goto linkn
  108. if /i "!e!"=="2" goto linkn
  109. if /i "!e!"=="1" echo 正在将设置写入文件...&echo !linkname!>>设置.ini&ping 127.1 -n 3 >nul 2>nul&cls
  110. echo 步骤三:
  111. :timee
  112. echo 请问每几秒钟再次运行?默认值为300秒(5分钟)
  113. set /p nextime=[请输入...(单位秒),默认值按回车]
  114. if /i "!nextime!"=="" set nextime=300
  115. if /i "!nextime!"=="q" goto ex
  116. echo 现在设为每 !nextime! 秒程序将再次运行...
  117. set /p f=[确定=1,重新输入=2]
  118. if /i "!f!"=="" goto timee
  119. if /i "!f!"=="2" goto timee
  120. if /i "!f!"=="1" echo 正在将设置写入文件...&echo !nextime!>>设置.ini&ping 127.1 -n 3 >nul 2>nul&cls
  121. echo 步骤四:
  122. :passwords
  123. echo 请问你要使用什么密码?(默认是garyng)
  124. set /p pass=[请输入密码...,默认值按回车]
  125. if /i "!pass!"=="" set pass=garyng
  126. if /i "!pass!"=="q" goto ex
  127. echo 现在密码为 !pass!...
  128. set /p g=[确定=1,重新输入=2]
  129. if /i "!g!"=="" goto passwords
  130. if /i "!g!"=="2" goto passwords
  131. if /i "!g!"=="1" echo 正在将设置写入文件...&set ramdan=!pass!&goto passen
  132. color 0C&echo 你输入无效&goto passwords
  133. :ex
  134. color 0C&title 程序将在3秒内退出...
  135. set 退格键=
  136. for /l %%a in (3 -1 1) do (set /p =!退格键!%%a秒内退出... <nul&ping -n 2 127.1 >nul)
  137. exit
  138. :passen
  139. echo 为密码加密...请稍等...
  140. Set "Code=qz3─wRDxCX╭eYE╮dc└rfv$th*nujhhelloelinkllomola1garyng5267┤4s8PL╰O┬KI&┐)JM┼HB├@VG9┈gbTy0┌FS┊#ZgaryngQW!(Aik*%NU^┘╯│┄┆"
  141. Set /A Num=!Random!%%107
  142. Set /A B=!Random!%%100
  143. Set /A C=!Random!%%90
  144. set /a D=!Random!%%80
  145. set /a E=!Random!%%70
  146. For %%h in (!E!) Do set randon=!Code:~%%h,15!
  147. For %%j In (!Num!) Do set randam=!Code:~%%j,13!
  148. For %%k In (!B!) Do set rondom=!Code:~%%k,11!
  149. For %%l In (!C!) Do set rondam=!Code:~%%l,19!
  150. For %%i In (!D!) Do set rondon=!Code:~%%i,7!
  151. echo !randam!,!randam!,!rondom!,!randam!,!randon!,!randam!,!randam!,!randam!>>设置.ini&echo !rondom!,!random!,!rondon!,!random!,!randam!,!random!,!rondom!,!random!>>设置.ini&echo !rondam!,!random!,!randon!,!random!,!ramdan!,!random!,!rondam!,!random!>>设置.ini&echo !rondon!,!random!,!rondam!,!random!,!rondam!,!random!,!randon!,!randam!>>设置.ini&echo !randon!,!random!,!randam!,!random!,!rondom!,!random!,!rondon!,!randam!>>设置.ini&echo !randon!,!random!,!randam!,!random!,!rondom!,!random!,!rondon!,!rondom!>>设置.ini&ping 127.1 -n 3 >nul 2>nul&cls
  152. cls&echo 步骤五:
  153. :explorername
  154. echo 请问你现在使用的浏览器是什么?
  155. set /p explorer= [请输入浏览器的名字(注意大小写!)...]
  156. echo 你的浏览器是:!explorer!
  157. set /p yn=[确定按1,重新输入按2]
  158. if /i "!yn!"=="" goto explorername
  159. if /i "!yn!"=="2" goto explorername
  160. if /i "!yn!"=="1" echo 正在将设置写入文件...&echo set ws=createObject("WScript.Shell")>按键模拟.vbs&echo Ws.AppActivate "!explorer!">>按键模拟.vbs&echo ws.SendKeys "%%{F4}{ENTER}">>按键模拟.vbs&echo 恭喜你,你完成了设置向导!&ping -n 2 127.1 >nul&cls&call %0
  161. color 0C&echo 你输入无效&goto explorername
  162. :pingg
  163. color 0C&del ip.txt&echo 请检查网络连接或者你输入无效!!&goto ex
复制代码
因为本人还是个菜鸟~
如果有任何不对的地方
可以教教我~


下载后,解压~
就可以使用啦~



下载链接:
因为权限不足,发个外部链接:

批处理版链接监视器下载(能任意选择版本号)

注意:
此程序在英文版的Windows Vista Home Premium SP2下制作~
Ping 链接那段可能要要改改~

作者: CrLf    时间: 2011-8-14 00:07

鼓励鼓励,不过这个篇幅是不是可以压缩一下...在我的经验中,非集成类的批处理脚本,不太复杂的话以十几二十行为佳,而四五十行左右的代码就算比较大型了,一般足以胜任大多数复杂的单项任务。
一个建议:用更多的时间写更短的代码,收获会更大
作者: garyng    时间: 2011-8-14 00:22

我还是个菜鸟~
版主能不能教教我~
或者帮帮我~
作者: CUer    时间: 2011-8-14 01:39

初学乍练的时候还是低调一些比较好,动不动神马人生啊、大作啊、原创啊~~~
作者: garyng    时间: 2011-8-14 10:10

对不起~
马上更改顶楼的标题~
作者: broly    时间: 2011-8-14 10:38

支持低调做人处事。
作者: garyng    时间: 2011-8-14 17:44

本帖最后由 garyng 于 2011-8-15 21:29 编辑

谢谢管理员Batcher 把帖子移到原创板块~
顶楼部分代码已更新~
作者: garyng    时间: 2011-8-15 21:30

下载链接开放啦~
之前链接关闭是因为我上传不到文件~
现在弄好啦~
可以下载啦~
作者: bluewing009    时间: 2011-8-15 23:12

回复 8# garyng


    大致看了一眼,一开始的一系列调用没看懂,也没说明调用的是什么用的,到了最后发现可能是一个控制上网的东西。屏蔽了特定的网站。如果这样的话,可以考虑一下hosts文件的作用。
作者: garyng    时间: 2011-8-16 16:33

本帖最后由 garyng 于 2011-8-16 17:30 编辑

回复 9# bluewing009

如果那个网站是你常常上的网站(比如游戏的网站),你有不给别人(跟你用同一架电脑的哪个人)登录这个网站
如果用hosts的话,我要上的时候又要改hosts的文件,上完了又要改回,很麻烦~
用批量处理改文件也是很麻烦,因为那是系统文件,开了UAC它就不让你用批处理改(我不想关UAC)~
而且我刚学批处理不久
写这东东也只是实践学来的东西~


顶楼已增加注释~
作者: luoxue    时间: 2011-8-17 07:50

这东西是做什么用的?
作者: BillGates    时间: 2011-8-17 16:08

要调用太多第三方工具啦~
作者: garyng    时间: 2011-8-18 16:54

回复 12# BillGates


没办法啊~
我是菜鸟啊~
那你改良下吧~




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2