[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
试试这样能否正确调整到:start
  1. setlocal enabledelayedexpansion
  2. echo 正在为您设置IP,请稍等......
  3. set /A "a=%RANDOM%%%250+3
  4. set /A "b=%RANDOM%%%250+3
  5. set /A "c=%RANDOM%%%250+3
  6. netsh interface ip set address name="本地连接" source=static addr=10.%a%.%b%.%c% mask=255.0.0.0
  7. :start
  8. set /A "num=%RANDOM%%%190+10"
  9. ping 10.1.1.%num% -n 1
  10. rem arp -a |find "10.1.1.%num%" &&goto start
  11. %systemroot%\system32\arp.exe -a | %systemroot%\system32\find.exe "10.1.1.%num%"
  12. echo !errorlevel!
  13. if !errorlevel! equ 0 (
  14.     goto :start
  15. )
  16. netsh interface ip set address name="本地连接" source=static addr=10.1.1.%num% mask=255.255.255.0 gateway=10.1.1.250 gwmetric=0 | find "IP地址已在网络上使用" &&goto start
  17. netsh interface ip set dns "本地连接" source=static addr=10.1.1.100 register=primary
  18. netsh interface ip add dns "本地连接" addr=8.8.8.8
  19. netsh interface ip set wins name="本地连接" source=static addr=10.1.1.100
  20. if %errorlevel% neq 0 goto start
复制代码

TOP

ping 不通  不代表得不到mac


win7明明可以得到mac 却不执行  goto  start
收入分四种:狂劳不得,多劳少得,少劳多得,不劳狂得。还好,我是第二种!

TOP

本帖最后由 beck1321 于 2013-1-5 17:53 编辑

xp下没有那么多提示  但 成功的显示了 已占用ip 的mac 然后 一直goto start,win7那个运行过程 是用的BAT-VBS 您的修改的,即使是没修改的 也是那个样子,所以不用担心修改错了的问题
  1. C:\>a
  2. 正在为您设置IP地址,请稍等......
  3. 确定。
  4. Pinging 10.3.3.254 with 32 bytes of data:
  5. Request timed out.
  6. Ping statistics for 10.3.3.254:
  7.     Packets: Sent = 1, Received = 0, Lost = 1 (100% loss),
  8.   10.3.3.254            1c-17-d3-dc-c0-78     dynamic
  9. Pinging 10.3.3.254 with 32 bytes of data:
  10. Request timed out.
  11. Ping statistics for 10.3.3.254:
  12.     Packets: Sent = 1, Received = 0, Lost = 1 (100% loss),
  13.   10.3.3.254            1c-17-d3-dc-c0-78     dynamic
  14. Pinging 10.3.3.254 with 32 bytes of data:
  15. Request timed out.
  16. Ping statistics for 10.3.3.254:
  17.     Packets: Sent = 1, Received = 0, Lost = 1 (100% loss),
  18.   10.3.3.254            1c-17-d3-dc-c0-78     dynamic
  19. Pinging 10.3.3.254 with 32 bytes of data:
  20. Request timed out.
  21. Ping statistics for 10.3.3.254:
  22.     Packets: Sent = 1, Received = 0, Lost = 1 (100% loss),
  23.   10.3.3.254            1c-17-d3-dc-c0-78     dynamic
  24. Pinging 10.3.3.254 with 32 bytes of data:
  25. Control-C
  26. ^C终止批处理操作吗(Y/N)? y
  27. C:\>
复制代码
这个 我拿的另一个ip试的 254  其实 232  还是254 这个也不用考虑在出错可能的范围内  因为都是我管理的设备 确定都是开着的 而且 批处理win7 xp也都改过尝试用过
收入分四种:狂劳不得,多劳少得,少劳多得,不劳狂得。还好,我是第二种!

TOP

win7下  不成功的(不管是BAT-VBS 给我修改的还是原来的都不行)
  1. C:\>b
  2. C:\>set /A "a=24975%131+20
  3. C:\>set /A "b=17566%251+3
  4. C:\>set /A "c=31688%251+3
  5. C:\>netsh interface ip set address name="本地连接" source=static addr=10.105.250
  6. .65 mask=255.0.0.0 gateway=10.3.3.254 gwmetric=0
  7. C:\>set /A "num=1399%1+232"
  8. C:\>ping 10.3.3.232 -n 2
  9. 正在 Ping 10.3.3.232 具有 32 字节的数据:
  10. PING: 传输失败。General failure.
  11. PING: 传输失败。General failure.
  12. 10.3.3.232 的 Ping 统计信息:
  13.     数据包: 已发送 = 2,已接收 = 0,丢失 = 2 (100% 丢失),
  14. C:\>rem arp -a |find "10.3.3.232" &&goto start
  15. C:\>C:\Windows\system32\arp.exe -a   2>&1  | C:\Windows\system32\find.exe "10.3.
  16. 3.232"   && goto start
  17. C:\>netsh interface ip set address name="本地连接" source=static addr=10.3.3.232
  18. mask=255.255.255.0 gateway=10.3.3.254 gwmetric=0
  19. C:\>netsh interface ip set dns "本地连接" source=static addr=10.3.3.10 register=
  20. primary
  21. 终止批处理操作吗(Y/N)? y
  22. C:\>
复制代码
======

C:\>rem arp -a |find "10.3.3.232" &&goto start

C:\>C:\Windows\system32\arp.exe -a   2>&1  | C:\Windows\system32\find.exe "10.3.
3.232"   && goto start

就是这一段 运行是运行了这一行的命令 但直接进行下面的操作了。在这批处理运行前后 我均arp -a 看了下 我做测是的232 的mac都在本机的mac地址表里
======
收入分四种:狂劳不得,多劳少得,少劳多得,不劳狂得。还好,我是第二种!

TOP

回复 5# BAT-VBS


    您发的两个 都不行 我个人觉得 不是在arp这一行命令 是在第6行的命令

我待会儿发下 xp下 和win7的 运行过程
收入分四种:狂劳不得,多劳少得,少劳多得,不劳狂得。还好,我是第二种!

TOP

回复 4# BAT-VBS


    好的 我尝试一下
收入分四种:狂劳不得,多劳少得,少劳多得,不劳狂得。还好,我是第二种!

TOP

或者把那行改成这样:
  1. %systemroot%\system32\arp.exe -a 2>&1 | %systemroot%\system32\find.exe "10.1.1.%num%" &&goto start
复制代码

TOP

  1. echo 正在为您设置IP,请稍等......
  2. set /A "a=%RANDOM%%%250+3
  3. set /A "b=%RANDOM%%%250+3
  4. set /A "c=%RANDOM%%%250+3
  5. netsh interface ip set address name="本地连接" source=static addr=10.%a%.%b%.%c% mask=255.0.0.0
  6. :start
  7. set /A "num=%RANDOM%%%190+10"
  8. ping 10.1.1.%num% -n 1
  9. rem arp -a |find "10.1.1.%num%" &&goto start
  10. %systemroot%\system32\arp.exe -a | %systemroot%\system32\find.exe "10.1.1.%num%" &&goto start
  11. netsh interface ip set address name="本地连接" source=static addr=10.1.1.%num% mask=255.255.255.0 gateway=10.1.1.250 gwmetric=0 | find "IP地址已在网络上使用" &&goto start
  12. netsh interface ip set dns "本地连接" source=static addr=10.1.1.100 register=primary
  13. netsh interface ip add dns "本地连接" addr=8.8.8.8
  14. netsh interface ip set wins name="本地连接" source=static addr=10.1.1.100
  15. if %errorlevel% neq 0 goto start
复制代码
如果仍然有问题,请把执行过程贴出来看看那。

TOP

我是这么做测试的 比如10.1.1.10 有一台电脑肯定是开着的

我就 把代码改为
set /A "num=%RANDOM%%%1+10"

则代表 无论怎么随机 都是10

那势必就能体现出来对错了
收入分四种:狂劳不得,多劳少得,少劳多得,不劳狂得。还好,我是第二种!

TOP

我自己做了个测试 就是把1楼的代码 第6行去掉,(前提是我先手动设置了ip和子网掩码如10.22.22.22 255.0.0.0 )再运行的批处理  则3、4、5 肯定是不起作用的吧,因为我已经手动做好了这段批处理要做的事情。
我就发现 这么做就正常了

一旦把第6行代码 加入回去 又不行了
收入分四种:狂劳不得,多劳少得,少劳多得,不劳狂得。还好,我是第二种!

TOP

返回列表