[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

【已解决】有偿求一个按不同IP(和IP段)运行不同命令的批处理或者小工具

具体报酬:20个QQ币
支付方式:直接充值
联系方式:QQ:admin@muyuehu.com(需要验证的话请填写:批处理之家)
有效期限:2012年03月20日之前。
需求描述:
(1)系统环境(XP/Win2003/Vista/Win7,中文版/英文版,专业版/家庭版/精简版,等)
(2)想要实现的功能的具体描述
能按照机器自身IP来运行不同的命令,比如:
192.168.1.2~26 运行1.exe
192.168.1.27~86 运行2.exe
192.168.1.87~186 运行3.exe
192.168.2.2~86 运行4.exe
192.168.2.87~196 运行6.exe
.....
192.168.3.1~96 运行1.exe

(3)测试数据及期待结果
不能有运行不了或者重复运行的,比如192.168.1.2~26 已经成功运行了1.exe,有再次运行1.exe或者2.exe
(4)其它补充信息
需要经过我实际使用完美达到目的,详细教我怎么用,比如IP段改了,怎么灵活修改批处理

我这有个小工具,但是不完善,不知道为什么,有些IP出错

和你发的那样做个小工具好象很容易

TOP

不能有运行不了或者重复运行的,比如192.168.1.2~26 已经成功运行了1.exe,有再次运行1.exe或者2.exe

程序1.exe的进程名是不是就叫做1.exe啊?

TOP

本帖最后由 gm8800 于 2012-3-12 16:07 编辑
程序1.exe的进程名是不是就叫做1.exe啊?
find 发表于 2012-3-12 09:31



    只是个名字,并不是指真的就是1.exe也可能是1.vbs或者1.txt....所以进程名就不一定了

TOP

回复 4# gm8800


进程名不一定的话,你希望通过什么方式来判断程序有没有被重复运行?

TOP

回复 5# find


    不需要判断有没有运行,只需要让他只成功运行一次就可以了呀

TOP

程序运行后会自动执行ip对应的程序并退出,如有错误会提示。
不是批处理,看着用吧。。


[说明]
config=指定开始ip所要执行的文件,如10.0.3.1=notepad.exe,为10.0.3.1开始执行notepad.exe,结束ip见count段
count=指定ip范围,如10.0.3.1=15,为10.0.3.1~10.0.3.15
[config]
10.0.3.1=calc.exe
[count]
10.0.3.1=15
[main]
run=0

像这样的话
192.168.1.2~26 运行1.exe
192.168.1.27~86 运行2.exe
192.168.1.87~186 运行3.exe
192.168.2.2~86 运行4.exe
192.168.2.87~196 运行6.exe
[config]
192.168.1.2=1.exe
192.168.1.27=2.exe
192.168.1.87=3.exe
192.168.2.2=4.exe
192.168.2.87=6.exe
[count]
192.168.1.2=25
192.168.1.27=60
192.168.1.87=100
192.168.2.2=85
192.168.2.87=110

TOP

  1. @echo off & setlocal enabledelayedexpansion
  2. for /f %%a in ('netsh int ip sh ipadd ^| findstr "本地连接"') do (
  3. set ip=%%~xa&set ip=!ip:.=!
  4. if "%%~na" equ "192.168.1" (if !ip! GEQ 2 (if !ip! LEQ 26 (1.exe) else (if !ip! GEQ 27 (if !ip! LEQ 86 (2.exe) else (if !ip! GEQ 87 if !ip! LEQ 186 (3.exe))))))
  5. if "%%~na" equ "192.168.2" (if !ip! GEQ 2 (if !ip! LEQ 86 (4.exe) else (if !ip! GEQ 87 (if !ip! LEQ 196 (6.exe)))))
  6. if "%%~na" equ "192.168.3" (if !ip! GEQ 1 (if !ip! LEQ 96 (1.exe)))
  7. )
复制代码
半成品,后面的可以引用此代码,没有版权

TOP

回复 6# gm8800


不能有运行不了或者重复运行的,比如192.168.1.2~26 已经成功运行了1.exe,有再次运行1.exe或者2.exe

这不是你自己说的吗?

TOP

回复 7# dnfreeuser


    你这个我测试了下,发现和我发的那个有个差不多的问题,看我这的设置是这样的,但是192.168.1.192这个IP会同时打开3.txt和6.txt,192.168.2.104这个IP会同时打开1.txt和7.txt;这是什么问题?
  1. [说明]
  2. config=指定开始ip所要执行的文件,如10.0.3.1=notepad.exe,为10.0.3.1开始执行notepad.exe,结束ip见count段
  3. count=指定ip范围,如10.0.3.1=15,为10.0.3.1=10.0.3.15
  4. [config]
  5. 192.168.2.65=1.txt
  6. 192.168.1.2=2.txt
  7. 192.168.1.96=3.txt
  8. 192.168.1.26=4.txt
  9. 192.168.2.1=5.txt
  10. 192.168.1.160=6.txt
  11. 192.168.2.101=7.txt
  12. 192.168.2.125=8.txt
  13. 192.168.2.186=9.txt
  14. 192.168.0.1=0.txt
  15. [count]
  16. 192.168.2.65=96
  17. 192.168.1.2=25
  18. 192.168.1.96=159
  19. 192.168.1.26=95
  20. 192.168.2.1=64
  21. 192.168.1.160=199
  22. 192.168.2.101=124
  23. 192.168.2.125=245
  24. 192.168.2.186=241
  25. 192.168.0.1=254
  26. [main]
  27. run=0
复制代码

TOP

192.168.1.192
192.168.2.104
你这两台机都是双 IP 吧?

TOP

本帖最后由 dnfreeuser 于 2012-3-14 08:19 编辑

IP段范围重复了
比如
192.168.2.104
会符合
192.168.2.65=1.txt

192.168.2.101=7.txt
WHY?
因为在count里
192.168.2.65=96 所以ip范围是192.168.2.65~192.168.2.65+96(96个)-1(去除本身)=160,即192.168.2.65~192.168.2.160 共96个IP地址,包含192.168.2.101,所以执行7.txt
然后
192.168.2.101=124 包含192.168.2.101~192.168.2.224同样包含192.168.2.104,所以执行1.txt

正确的范围应该是
192.168.2.65~192.168.2.96的话是192.168.2.65=32
192.168.2.101~124的话192.168.2.101=4


另外,如果
[config]
192.168.1.4=1.txt
[count]
192.168.1.1=10
那么这样是不能执行1.txt的,上下必须要对应。即下面必须是192.168.1.4=这样的

TOP

回复 10# gm8800


    人呢?都没个回音说行不行了?

TOP

回复 13# dnfreeuser


    实在不好意思,我这几天太忙了,一直没来论坛,那天按照你的试了下,可以用,谢谢你了,请PM告诉我你的QQ,另外就是,这个小工具启动的时候有个黑色的框,不知道能不能不显示这个框

TOP

TOP

返回列表