Board logo

标题: [系统相关] 【已解决】批处理结束局域网网段内正在运行的QQ? [打印本页]

作者: coolcatsfx    时间: 2009-3-26 16:52     标题: 【已解决】批处理结束局域网网段内正在运行的QQ?

用BAT来结束局域网网段内正在运行的QQ
环境:拥有局域网内所有电脑的本地管理密码,XP,使用TASKKILL,
目地:运行一个BAT来自动扫描网段所有电脑,先检查是否开机,开机则检查是否有QQ在运行并TASKKILL结束它;若没开机,不运行TASKKILL。

已知,for /l %%i in (30,1,252) do taskkill /s 10.128.238.%%i /u localhost\administrator /p password /f /im qq.exe
结束在网段10.128.238.30-252内正在运行的QQ
求教,如何用BAT来判断网段内电脑是否开机?有哪些开着?

[ 本帖最后由 coolcatsfx 于 2009-3-27 15:36 编辑 ]
作者: Batcher    时间: 2009-3-26 17:13

//如何用BAT来判断网段内电脑是否开机?有哪些开着?

本论坛搜索“局域网”
能找到不少例子
作者: coolcatsfx    时间: 2009-3-26 17:16     标题: THX先谢谢你指路

先谢谢你指路,I'll try
作者: coolcatsfx    时间: 2009-3-26 17:29     标题: 找到一个类似的例子,再试试如何处理

以下为转载:

set /p netid=请输入一个C类网段(如:192.168.1):
echo off
for /L %%A in (1,1,10) do ping -n 1 %netid%.%%A | find "from"   && echo %netid%.%%A >>alive.txt
作者: coolcatsfx    时间: 2009-3-26 17:33     标题: 请测试。。。

set /p netid=

echo off
for /L %%A in (30,1,252) do ping -n 1 %netid%.%%A | find "from"   && echo %netid%.%%A >>alive.txt

for /l %%i in (alive.txt) do taskkill /s 10.128.238.%%i /u localhost\administrator /p password /f /im qq.exe
作者: coolcatsfx    时间: 2009-3-26 20:19     标题: 修正

set /p netid=


for /L %%A in (11,1,15) do ping -n 1 %netid%.%%A | find "from"   && echo %%A >>alive.txt

for /f %%b in (alive.txt) do tasklist /s %netid%.%%b /u localhost\administrator /p password |find "qq" && echo %%b >>qq.txt

for /f %%i in (qq.txt) do taskkill /s %netid%.%%i /u localhost\administrator /p password /f /im qq.exe
作者: Batcher    时间: 2009-3-26 20:21

本版规则
1、求代码、寻求代码解释、探讨代码得失的帖子均可发在本版块,其余话题禁止在本版讨论;
2、求助时,务必在顶楼一次性把问题交代清楚;若文字难以表述,请配图说明,或是上传附件;但是,一切操作应从节约论坛资源的角度出发,能文字说明清楚的就无需再发图片,小图能说明问题的尽量不截全图,在不影响效果的前提下尽量压缩图片及附件;
3、所发代码若不止一行,请务必用code标记把代码部分首尾括起来,以便他人复制;


Q: 如何用code把代码扩起来?
A: http://bbs.bathome.net/thread-404-1-1.html
作者: coolcatsfx    时间: 2009-3-27 10:08     标题: 请帮助查看,为什么不会生成QQ.TXT文件 THX

为什么不会生成QQ.TXT文件 THX

  1. set /p netid= 请输入网段=
  2. set /p Sip= 开始IP=
  3. set /p Eip= 终止IP=
  4. del alive.txt
  5. del qq.txt
  6. ::开着的电脑IP写入ALIVE.TXT
  7. for /L %%a in (%Sip%,1,%Eip%) do ping -n 1 %netid%.%%a | find "from"   && echo %%a >>alive.txt
  8. ::从ALIVE.TXT中找出正在使用QQ的电脑IP并写入QQ.TXT
  9. for /f %%b in (alive.txt) do tasklist /s %netid%.%%b /u localhost\administrator /p password |find "qq" && echo %%b >>qq.txt
  10. ::从QQ.TXT中结束正在运行的QQ
  11. for /f %%i in (qq.txt) do taskkill /s %netid%.%%i /u localhost\administrator /p password /f /im qq.exe
  12. pause
复制代码

[ 本帖最后由 coolcatsfx 于 2009-3-27 14:17 编辑 ]
作者: Batcher    时间: 2009-3-27 15:14     标题: 回复 8楼 的帖子

给find命令加个/i开关试试
作者: coolcatsfx    时间: 2009-3-27 15:28     标题: 已解决, Thanks for

Batcher, you are right.
Good idea.
  1. set /p netid= 请输入网段=
  2. set /p Sip= 开始IP=
  3. set /p Eip= 终止IP=
  4. del alive.txt
  5. del qq.txt
  6. ::开着的电脑IP写入ALIVE.TXT
  7. for /L %%a in (%Sip%,1,%Eip%) do ping -n 1 %netid%.%%a | find "from"   && echo %%a >>alive.txt
  8. ::从ALIVE.TXT中找出正在使用QQ的电脑IP并写入QQ.TXT
  9. for /f %%b in (alive.txt) do tasklist /s %netid%.%%b /u localhost\administrator /p password |find /i "qq" && echo %%b >>qq.txt
  10. ::从QQ.TXT中结束正在运行的QQ
  11. for /f %%i in (qq.txt) do taskkill /s %netid%.%%i /u localhost\administrator /p password /f /im qq.exe
  12. pause
复制代码

[ 本帖最后由 coolcatsfx 于 2009-3-27 15:29 编辑 ]




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