Board logo

标题: [网络连接] 一个批量分配IP地址的bat脚本,在xp下可以运行,在win7下运行不了,求指点。 [打印本页]

作者: xiu_烂    时间: 2015-5-18 00:39     标题: 一个批量分配IP地址的bat脚本,在xp下可以运行,在win7下运行不了,求指点。

  1. @echo off
  2. c:
  3. CD\
  4. Set HN=
  5. If Exist IP.txt Goto setting
  6. echo deployIP failed: could not find c:\IP.TXT
  7. Pause
  8. Exit
  9. :setting
  10. For /f "tokens=16" %%i IN ('IPConfig /all ^| Find /i "Host Name"') DO Set HN=%%i
  11. Set IP=
  12. echo Host Name:%HN%
  13. For /f "tokens=1,2" %%i IN (IP.txt) DO (
  14. If %%i==%HN% Set IP=%%j
  15. )
  16. If "%IP%"=="" (
  17. echo deployIP failed: could not find the IP address
  18. Exit
  19. )
  20. echo This IP will be used:%IP%
  21. echo Setting IP
  22. NetSh interface ip Set address name="本地连接" source=static addr=%IP% mask=255.255.255.0 gateway=192.168.97.1 gwmetric=0
  23. echo Setting DNS
  24. NetSh interface ip add dns "本地连接" 192.168.97.174
  25. NetSh interface ip add dns name="本地连接" addr=22.64.25.51 index=2
  26. IPConfig /all
复制代码
在xp下运行完全没有问题,在win7下面就运行不了,求大神指点。。。
作者: fcxk    时间: 2015-5-18 08:33

你的win7是叫本地连接吗?
作者: ygqiang    时间: 2015-5-18 12:23

回复 1# xiu_烂
  1. For /f "tokens=16" %%i IN ('IPConfig /all ^| Find /i "主机名"') DO Set HN=%%i
复制代码
这里修改下。。。
作者: 我不是是人    时间: 2015-5-18 18:55

本帖最后由 我不是是人 于 2015-5-18 18:58 编辑

如果你的電腦是中文版的window
  1. For /f "tokens=16" %%i IN ('IPConfig /all ^| Find /i "Host Name"') DO Set HN=%%i
复制代码
"Host Name" 要改成 "主机名"
如果你用的是英文版的window
  1. NetSh interface ip Set address name="本地连接" source=static addr=%IP% mask=255.255.255.0 gateway=192.168.97.1 gwmetric=0
  2. NetSh interface ip add dns "本地连接" 192.168.97.174
  3. NetSh interface ip add dns name="本地连接" addr=22.64.25.51 index=2
复制代码
這三句的 "本地连接" 要改成 "Local Area Connection"
作者: xiu_烂    时间: 2015-5-21 21:44

回复 4# 我不是是人


谢谢,我试试哈。
作者: xiu_烂    时间: 2015-5-21 21:57

回复 3# ygqiang


   
谢谢,

改了也出现问题了,有两个IP,原来的没有改掉。用ipconfig /all,输出的结果是这样的:
  1. IPv4地址…………10.201.221.10<复制>
  2. 子网掩码…………255.255.255.0
  3. 自动配置IPv4地址…169.254.99.98<首选>
  4. 子网掩码…………255.255.0.0
  5. 默认网关…………10.201.221.1
复制代码
用ipconfig就是
  1. 自动配置IPv4地址…169.254.99.98
  2. 子网掩码…………255.255.0.0
  3. 默认网关…………10.201.221.1
复制代码

作者: 我不是是人    时间: 2015-5-22 13:20

補充一下
我在繁體中文的版本
  1. For /f "tokens=16" %%i IN ('IPConfig /all ^| Find /i "Host Name"') DO Set HN=%%i
复制代码
這段的tokens=16 要改成tokens=15  ,還有就是"Host Name"改成"主機名稱" ,
如果是簡體版 "Host Name" 要改成 "主机名" ,可能也要把tokens=16 改成tokens=15
因為手邊沒有簡體window,測試不了
作者: 我不是是人    时间: 2015-5-22 13:41

這是我之前因為DHCP一直出問題而寫的BAT,希望對你有幫助
  1. @echo off
  2. title 固定IP By Color 暫不支援簡體版
  3. color 0a
  4. for /f %%a in ('ipconfig /all') do set qwe=%%a
  5. if %qwe%==自動設定啟用 set na="區域連線"&set Name="主機名稱"&goto :chinese
  6. if %qwe%==Autoconfiguration set na="Local Area Connection"&set Name="Host Name"&goto :english
  7. :color
  8. Set ipf=
  9. echo 電腦名稱:%HN%
  10. For /f "tokens=1,2" %%i IN (\\mob-pc003\bat$\AboutIP\IP2.txt) DO (
  11. If %%i==%HN% set ipf=%%j
  12. )
  13. setlocal enabledelayedexpansion
  14. for /f "tokens=3 delims=\" %%a in ("%userprofile%") do (
  15. set name=%%a
  16. )
  17. set ma=255.255.255.0
  18. set ga=10.30.102.254
  19. set dns1=10.30.101.200
  20. netsh.exe interface ip set address !na! static !ipf! !ma! !ga! 1
  21. netsh.exe interface ip set dns !na! static !dns1!
  22. >>"\\mob-pc003\bat$\AboutIP\IP\%HN%_%name%_%ipf%.txt" echo %HN%_%name%_%ipf%
  23. exit
  24. echo 如有需要請聯絡 CoLoR
  25. :chinese
  26. For /f "tokens=15" %%i IN ('IPConfig /all ^| Find /i %Name%') DO Set HN=%%i&goto :color
  27. :english
  28. For /f "tokens=16" %%i IN ('IPConfig /all ^| Find /i %Name%') DO Set HN=%%i&goto :color
复制代码
順帶一提,這個BAT 還把使用過這個BAT的使用者跟電腦名稱跟IP記錄下來,並會自動分別電腦是中文版還是英文版




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