标题: [网络连接] 一个批量分配IP地址的bat脚本,在xp下可以运行,在win7下运行不了,求指点。 [打印本页]
作者: xiu_烂 时间: 2015-5-18 00:39 标题: 一个批量分配IP地址的bat脚本,在xp下可以运行,在win7下运行不了,求指点。
- @echo off
- c:
- CD\
- Set HN=
- If Exist IP.txt Goto setting
-
- echo deployIP failed: could not find c:\IP.TXT
- Pause
- Exit
-
- :setting
- For /f "tokens=16" %%i IN ('IPConfig /all ^| Find /i "Host Name"') DO Set HN=%%i
- Set IP=
- echo Host Name:%HN%
- For /f "tokens=1,2" %%i IN (IP.txt) DO (
- If %%i==%HN% Set IP=%%j
- )
- If "%IP%"=="" (
- echo deployIP failed: could not find the IP address
- Exit
- )
-
- echo This IP will be used:%IP%
-
- echo Setting IP
- NetSh interface ip Set address name="本地连接" source=static addr=%IP% mask=255.255.255.0 gateway=192.168.97.1 gwmetric=0
-
-
- echo Setting DNS
- NetSh interface ip add dns "本地连接" 192.168.97.174
- NetSh interface ip add dns name="本地连接" addr=22.64.25.51 index=2
- IPConfig /all
复制代码
在xp下运行完全没有问题,在win7下面就运行不了,求大神指点。。。
作者: fcxk 时间: 2015-5-18 08:33
你的win7是叫本地连接吗?
作者: ygqiang 时间: 2015-5-18 12:23
回复 1# xiu_烂 - 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- For /f "tokens=16" %%i IN ('IPConfig /all ^| Find /i "Host Name"') DO Set HN=%%i
复制代码
"Host Name" 要改成 "主机名"
如果你用的是英文版的window- NetSh interface ip Set address name="本地连接" source=static addr=%IP% mask=255.255.255.0 gateway=192.168.97.1 gwmetric=0
- NetSh interface ip add dns "本地连接" 192.168.97.174
- 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,输出的结果是这样的:- IPv4地址…………10.201.221.10<复制>
- 子网掩码…………255.255.255.0
- 自动配置IPv4地址…169.254.99.98<首选>
- 子网掩码…………255.255.0.0
- 默认网关…………10.201.221.1
复制代码
用ipconfig就是- 自动配置IPv4地址…169.254.99.98
- 子网掩码…………255.255.0.0
- 默认网关…………10.201.221.1
复制代码
作者: 我不是是人 时间: 2015-5-22 13:20
補充一下
我在繁體中文的版本中- 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,希望對你有幫助- @echo off
- title 固定IP By Color 暫不支援簡體版
- color 0a
- for /f %%a in ('ipconfig /all') do set qwe=%%a
- if %qwe%==自動設定啟用 set na="區域連線"&set Name="主機名稱"&goto :chinese
- if %qwe%==Autoconfiguration set na="Local Area Connection"&set Name="Host Name"&goto :english
- :color
- Set ipf=
- echo 電腦名稱:%HN%
- For /f "tokens=1,2" %%i IN (\\mob-pc003\bat$\AboutIP\IP2.txt) DO (
- If %%i==%HN% set ipf=%%j
- )
- setlocal enabledelayedexpansion
- for /f "tokens=3 delims=\" %%a in ("%userprofile%") do (
- set name=%%a
- )
- set ma=255.255.255.0
- set ga=10.30.102.254
- set dns1=10.30.101.200
- netsh.exe interface ip set address !na! static !ipf! !ma! !ga! 1
- netsh.exe interface ip set dns !na! static !dns1!
- >>"\\mob-pc003\bat$\AboutIP\IP\%HN%_%name%_%ipf%.txt" echo %HN%_%name%_%ipf%
- exit
- echo 如有需要請聯絡 CoLoR
- :chinese
- For /f "tokens=15" %%i IN ('IPConfig /all ^| Find /i %Name%') DO Set HN=%%i&goto :color
- :english
- 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 |