找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20348|回复: 5

[文件操作] [已解决]批处理如何实现PING不通电脑就执行指定操作?

[复制链接]
发表于 2010-7-12 19:48:09 | 显示全部楼层 |阅读模式
求教:

本人菜鸟,来坛子求教大虾们~ 先谢谢啦~


我和隔壁共同使用1个ADSL, 我经常挂机下载的,对方只打打游戏,看看电影什么的~
为了不影响人家使用(谁叫人家是美女,有特权呐,无奈),给人家和自己都方便,来坛子求助写个批处理~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
最好每条处理命令后追加下说明作用,我也学习下~以后我就在这里学习批处理了~ 谢谢大虾们~




首先 PING 对方电脑, 如果对方电脑开机(对方电脑内网IP192.168.1.16),则不做任何动作,继续PING。PING间隔时间最好1分钟一次,PING间隔最好能够我自己可以修改下,(PING多了,怕影响她网速,也怕占自己电脑资源)


如果对方电脑关机,PING不通5分钟后,就是延时,时间最好我也能自己修改,(延时1是防止路由器问题,2是怕人家电脑重启什么的),我的挂机电脑自动运行 D:\Thunder\Thunder.exe     
迅雷进行下载。
如果延时的5分钟内对方电脑又能ping通了,则什么都不做~ 继续上面的流程~


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
如果下面的功能实现麻烦的话,可以不实现,只要上面的就足够了~

如果超过5分钟,迅雷启动进行下载了,对方电脑又进行开机了,则我的电脑重启,我会把这个批处理自动加载启动运行,这样又能执行上述动作了~



这样为美女服务的全套程序基本差不多了,哪位大虾如果有好的点子也可以追加里面~

跪谢大虾们了~ 谢谢了~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
谢谢各位热心的~
经过自己扒拉资料学习,初步解决了~ 代码如下
1.EXE (使用quickbatchfilecompiler编译为EXE执行)

@echo off
:1
ping -n 5 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end
ping -n 5 localhost > nul
goto 1
:end
ping -n 10 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end1
goto 1
:end1
ping -n 20 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end2
goto 1
:end2
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end3
goto 1
:end3
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end4
goto 1
:end4
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end5
goto 1
:end5
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end6
goto 1
:end6
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end7
goto 1
:end7
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end8
goto 1
:end8
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end9
goto 1
:end9
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end10
goto 1
:end10
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end11
goto 1
:end11
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end12
goto 1
:end12
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end13
goto 1
:end13
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end14
goto 1
:end14
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end15
goto 1
:end15
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end16
goto 1
:end16
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end17
goto 1
:end17
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end18
goto 1
:end18
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end19
goto 1
:end19
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end20
goto 1
:end20
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end21
goto 1
:end21
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end22
goto 1
:end22
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end23
goto 1
:end23
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end24
goto 1
:end24
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end25
goto 1
:end25
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end26
goto 1
:end26
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end27
goto 1
:end27
ping -n 30 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto end28
goto 1
:end28
ping -n 5 localhost > nul
start D:\Thunder\Thunder.exe
start D:\Thunder\2.exe
ping -n 20 localhost > nul
start D:\Thunder\Thunder.exe
start D:\Thunder\2.exe
ping -n 300 localhost > nul
start D:\Thunder\Thunder.exe
exit

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2.exe

@echo off
:1
ping -n 5 localhost > nul
ping 192.168.1.50
if errorlevel 1 goto 1
ping -n 5 localhost > nul
goto end
:end
ping 192.168.1.50
if errorlevel 1 goto 1
ping -n 5 localhost > nul
goto end1
:end1
ping 192.168.1.50
if errorlevel 1 goto 1
ping -n 5 localhost > nul
goto end2
:end2
ping 192.168.1.50
if errorlevel 1 goto 1
ping -n 5 localhost > nul
goto end3
:end3
ping 192.168.1.50
if errorlevel 1 goto 1
ping -n 5 localhost > nul
goto end4
:end4
ping 192.168.1.50
if errorlevel 1 goto 1
ping -n 5 localhost > nul
goto end5
:end5
ping 192.168.1.50
if errorlevel 1 goto 1
ping -n 5 localhost > nul
goto end6
:end6
ping -n 5 localhost > nul
shutdown.exe -r
shutdown.exe -r
ping -n 5 localhost > nul
shutdown.exe -r
shutdown.exe -r
exit
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1.exe监视对方电脑是否工作,不工作延时一段时间后执行迅雷,同时执行2.exe后结束1.exe运行
延时期间如果对方电脑又能PING通了,继续监视。---延时作用防止对方重启电脑~

1.exe退出后由2.exe监视对方电脑是否开机, 如果开机自己电脑重启,1.exe随着系统自动启动~


以上代码由于初学,有很多繁琐累赘的,执行效率低下,不过经过实际使用一段时间基本功能实现~

大侠们有兴趣可以把代码优化下~  把自己鼓捣出来的东西给大家分享下~


谢谢各位热心的大侠们

[ 本帖最后由 ziyueboy 于 2010-7-31 20:30 编辑 ]

评分

参与人数 1PB +2 收起 理由
yslyxqysl + 2 感谢主动给标题标注[已解决]字样

查看全部评分

发表于 2010-7-12 22:30:45 | 显示全部楼层
@echo off
:aa
ping -n 300 127.0.0.1>nul
ping 192.168.1.16|find /i "time">nul||tasklist|find /i "Thunder">nul ||"C:\Program Files\Thunder Network\Thunder\Thunder.exe"
ping -n 300 127.0.0.1>nul
ping 192.168.1.16|find /i "time">nul&&tasklist|find /i "Thunder">nul &&tskill Thunder5
goto aa
发表于 2010-7-12 22:34:19 | 显示全部楼层
未测试
  1. @echo off
  2. color 0a
  3. title ****JCY0307****
  4. mode con: cols=40 lines=5
  5. echo.
  6. echo.
  7. echo               按任意键开始
  8. pause>nul
  9. :ks
  10. cls
  11. echo.
  12. echo 正在Ping 192.168.1.16 请稍候.....
  13. ping 192.168.1.16>nul
  14. if ERRORLEVEL 1 (goto butong) else (goto tong)
  15. :butong
  16. cls
  17. echo ping 192.168.1.16失败
  18. set a=
  19. set/p a=请输入延迟时间,默认5分钟(分):
  20. set/a a=%a%*60
  21. if "%a%"=="" set a=300
  22. :ing
  23. cls
  24. echo.
  25. echo.
  26. echo 正在延时-剩余时间%a%秒
  27. set/a a-=1
  28. ping -n 2 127.1>nul
  29. if "%a%"=="0" (
  30. cls
  31. echo 请稍候......
  32. ping 192.168.1.16>nul
  33. if ERRORLEVEL 1 start D:\Thunder\Thunder.exe
  34. goto ks
  35. )
  36. goto ing
  37. :tong
  38. cls
  39. echo ping 192.168.1.16成功
  40. set a=
  41. set/p a=请输入延迟时间,默认1分钟(分):
  42. set/a a=%a%*60
  43. if "%a%"=="" set a=60
  44. :loop
  45. cls
  46. echo.
  47. echo.
  48. echo 正在延时-剩余时间%a%秒
  49. set/a a-=1
  50. ping -n 2 127.1>nul
  51. if "%a%"=="0" (
  52. cls
  53. echo 请稍候......
  54. ping 192.168.1.16>nul
  55. if ERRORLEVEL 1 (echo.>nul) else (shutdown -r )
  56. )
  57. goto loop
复制代码

[ 本帖最后由 jcy0307 于 2010-7-12 22:50 编辑 ]
发表于 2010-7-12 22:34:57 | 显示全部楼层
@echo off
:aa
ping -n 300 127.0.0.1>nul
::延时300秒 即5分钟
ping 192.168.1.16|find /i "time">nul||tasklist|find /i "Thunder">nul ||"C:\Program Files\Thunder Network\Thunder\Thunder.exe"
::ping 192.168.1.16 不通时检查进程,进程不存在时打开迅雷,后面是完整路径。
ping -n 300 127.0.0.1>nul
::延时300秒 即5分钟
ping 192.168.1.16|find /i "time">nul&&tasklist|find /i "Thunder">nul &&tskill Thunder5
::::ping 192.168.1.16 通时检查进程,进程存在时结束迅雷。
goto aa
::循环
发表于 2010-7-12 23:09:07 | 显示全部楼层
  1. @echo off&cls
  2. ::延时五分钟差四秒+ping 网卡四秒 共五分钟
  3. ping -n 296 127.0.1>nul
  4. ::如果 192.168.1.16  四次百分之百都是不通状态运行迅雷,并继续监控;  反之则干掉正在使用的迅雷继续监控
  5. ping  192.168.1.16|find "100%">nul&&start  ""  "D:\Thunder\Thunder.exe"&&%0||taskkill /f /im  thunder*.exe&&%0
复制代码
 楼主| 发表于 2010-7-31 20:38:51 | 显示全部楼层
原帖由 heyoug 于 2010-7-12 22:30 发表
@echo off
:aa
ping -n 300 127.0.0.1>nul
ping 192.168.1.16|find /i "time">nul||tasklist|find /i "Thunder">nul ||"C:\Program Files\Thunder Network\Thunder\Thunder.exe"
ping -n 300 127.0.0.1>nul
pin ...


这个程序简单并且功能满足要求,也能看明白,本人菜鸟,呵呵,
准备按照此方案试验下~

谢谢各位高手指教,再次感谢了~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 22:56 , Processed in 0.022780 second(s), 10 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表