标题: [网络连接] 关于批处理自动改ip [打印本页]
作者: 反十字 时间: 2008-7-30 21:33 标题: 关于批处理自动改ip
- @echo off
- setlocal EnableDelayedExpansion
- for /l %%i in (3,1,255) do (
- set "aa=%%i"
- ping/n 1 192.168.0.%%i >nul
- if !ERRORLEVEL! equ 1 goto szip
- )
- goto :eof
-
- :szip
- set slection1=
- set slection1=192.168.0.!aa!
- echo 现在要设置的IP是 %slection1%
- PAUSE
- cls
- netsh interface ip set address name="本地连接" source=static addr=%slection1% mask=255.255.255.0
- netsh interface ip set address name="本地连接" gateway=192.168.0.1 gwmetric=0
- netsh interface ip set dns name="本地连接" source=static addr=202.102.152.3 register=PRIMARY
- netsh interface ip add dns name="本地连接" addr=202.102.154.3
- netsh interface ip set wins name="本地连接" source=static addr=none
复制代码
谢谢。。很强的命令。。
不知道可不可以做补充一下。另一种格式。
- @ ECHO OFF
- @ ECHO.
- @ ECHO. 说 明
- @ ECHO -----------------------------------------------------
- @ ECHO 此命令将为本本地连接自动更改ip
- @ ECHO 192.168.0.3
- @ ECHO 255.255.255.0
- @ ECHO 192.168.0.1
- @ ECHO 202.102.152.3
- @ ECHO 202.102.154.3
- @ ECHO -----------------------------------------------------
- PAUSE
- netsh interface ip set address name="本地连接" source=static addr=192.168.0.3 mask=255.255.255.0 [/color]
- [color=#006699]netsh interface ip set address name="本地连接" gateway=192.168.0.1 gwmetric=0 [/color]
- [color=#006699]netsh interface ip set dns name="本地连接" source=static addr=202.102.152.3 register=PRIMARY [/color]
- [color=#006699]netsh interface ip add dns name="本地连接" addr=202.102.154.3[/color]
- [color=#006699]netsh interface ip set wins name="本地连接" source=static addr=none
复制代码
打开BAT文件以后,,在里面输入。N.N N=0-255的数字。
按回车,然后执行- netsh interface ip set address name="本地连接" source=static addr=192.168.N.N
复制代码
这个命令呢?
补充一下。。如果本地连接的名字不叫本地连接怎么办?他有的时候叫本地连接2,有的时候叫本地连接3?甚至还有4 5 6这个要如何修改。作为批处理就是为懒人而做的。如果本地连接改了名字了。还得去网络属性里面查。进去查的话。。在里面直接改也很简单。所以。。想请教各位大侠如何修改
- Set Choice=
- Set /P Choice= 请选择要进行的操作 (0/1/Q) ,然后按回车:
- If "%Choice%"=="" Goto Start
- If Not "%Choice%"=="" Set Choice=%Choice:~0,1%
- If /I "%Choice%"=="0" Goto HD
- If /I "%Choice%"=="1" Goto UD
- If /I "%Choice%"=="Q" Exit
- Goto Start
复制代码
**************************************************
版务执行:Batcher
执行时间:2008-08-30
操作内容:加code标签
**************************************************
[ 本帖最后由 Batcher 于 2008-8-30 14:14 编辑 ]
作者: pusofalse 时间: 2008-7-30 22:16
@ ECHO OFF
@ ECHO.
@ ECHO. 说 明
@ ECHO -----------------------------------------------------
@ ECHO 此命令将为本本地连接自动更改ip
@ ECHO 192.168.0.3
@ ECHO 255.255.255.0
@ ECHO 192.168.0.1
@ ECHO 202.102.152.3
@ ECHO 202.102.154.3
@ ECHO -----------------------------------------------------
set n=3&PAUSE
:loop
netsh interface ip set address name="本地连接" source=static addr=192.168.0.%n% mask=255.255.255.0
if errorlevel 1 set/a n+=1&goto loop
netsh interface ip set address name="本地连接" gateway=192.168.0.1 gwmetric=0
netsh interface ip set dns name="本地连接" source=static addr=202.102.152.3 register=PRIMARY
netsh interface ip add dns name="本地连接" addr=202.102.154.3
netsh interface ip set wins name="本地连接" source=static addr=none
作者: 反十字 时间: 2008-7-31 21:33
我试试。先谢谢了``
作者: xjxxdnmwj 时间: 2008-7-31 21:35
怎么该不了的 啊 。骗人的 吧
作者: 都市浪子666 时间: 2008-8-3 19:47
试试我这个
从192.168.0.3到192.168.0.255逐个IP去PING,如果PING不通的,那说明那个IP还没被占用,那就把PING不通的IP设置为运行该批处理电脑的IP地址,这样在局域网里不用逐台电脑去改IP地址,自动设置,
- @echo off
- setlocal EnableDelayedExpansion
- for /l %%i in (3,1,255) do (
- set "aa=%%i"
- ping/n 1 192.168.0.%%i >nul
- if !ERRORLEVEL! equ 1 goto szip
- )
- goto :eof
-
- :szip
- set slection1=
- set slection1=192.168.0.!aa!
- echo 现在要设置的IP是 %slection1%
- PAUSE
- cls
- netsh interface ip set address name="本地连接" source=static addr=%slection1% mask=255.255.255.0
- netsh interface ip set address name="本地连接" gateway=192.168.0.1 gwmetric=0
- netsh interface ip set dns name="本地连接" source=static addr=202.102.152.3 register=PRIMARY
- netsh interface ip add dns name="本地连接" addr=202.102.154.3
- netsh interface ip set wins name="本地连接" source=static addr=none
复制代码
作者: 愚无尽 时间: 2008-8-3 19:50
里面强人很多,学问多多啊
作者: 反十字 时间: 2008-8-30 12:09
原帖由 都市浪子666 于 2008-8-3 19:47 发表
试试我这个
从192.168.0.3到192.168.0.255逐个IP去PING,如果PING不通的,那说明那个IP还没被占用,那就把PING不通的IP设置为运行该批处理电脑的IP地址,这样在局域网里不用逐台电脑去改IP地址,自动设置,
@e ...
谢谢。。很强的命令。。
不知道可不可以做补充一下。另一种格式。- @ ECHO OFF
- @ ECHO.
- @ ECHO. 说 明
- @ ECHO -----------------------------------------------------
- @ ECHO 此命令将为本本地连接自动更改ip
- @ ECHO 192.168.0.3
- @ ECHO 255.255.255.0
- @ ECHO 192.168.0.1
- @ ECHO 202.102.152.3
- @ ECHO 202.102.154.3
- @ ECHO -----------------------------------------------------
- PAUSE
- netsh interface ip set address name="本地连接" source=static addr=192.168.0.3 mask=255.255.255.0
- netsh interface ip set address name="本地连接" gateway=192.168.0.1 gwmetric=0
- netsh interface ip set dns name="本地连接" source=static addr=202.102.152.3 register=PRIMARY
- netsh interface ip add dns name="本地连接" addr=202.102.154.3
- netsh interface ip set wins name="本地连接" source=static addr=none
复制代码
打开BAT文件以后,,在里面输入。N.N N=0-255的数字。
按回车,然后执行
netsh interface ip set address name="本地连接" source=static addr=192.168.N.N
这个命令
ne
作者: Batcher 时间: 2008-8-30 14:19
获取本地连接名称,可以搜索注册表:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\
[ 本帖最后由 Batcher 于 2008-8-30 14:21 编辑 ]
作者: 反十字 时间: 2008-8-30 14:47
如果有两个呢?、
有的时候会有一个打X或者有一个被禁用
请教一下。。。如何使用搜索注册表的命令- -!我手动能找到。。用批处理就不会了
照楼上所说的,在network里面有个connection里面有个name就是本地连接的名字。就象我的电脑,里面有5个本地连接。因为本人用虚拟机。每个虚拟机对应一个本地连接。多出来这么多本地连接怎么认?
现在先整最简单的吧。请问。 。。。如何获取本地连接名称。name=?
[ 本帖最后由 反十字 于 2008-8-30 19:39 编辑 ]
作者: 反十字 时间: 2008-8-30 19:35
@Echo Off
COLOR 1c
Set Choice=
Set /P Choice=请输入:
If "%Choice%"=="" Goto Start
If Not "%Choice%"=="" Set Choice=%Choice:~0,1%
If /I "%Choice%"=="0" Goto HD
If /I "%Choice%"=="1" Goto UD
If /I "%Choice%"=="Q" Exit
:HD
CLS
setlocal EnableDelayedExpansion
for /l %%i in (3,1,255) do (
set "aa=%%i"
ping/n 1 192.168.0.%%i >nul
if !ERRORLEVEL! equ 1 goto szip
)
goto :eof
:szip
set slection1=
set slection1=192.168.0.!aa!
echo 现在要设置的 IP地址:%slection1%
echo 子网掩码:255.255.255.0
echo 默认网关:192.168.0.1
echo 首选DNS服务器:202.102.152.3
echo 备用DNS服务器:202.102.154.3
PAUSE
cls
netsh interface ip set address name="本地连接" source=static addr=%slection1% mask=255.255.255.0
netsh interface ip set address name="本地连接" gateway=192.168.0.1 gwmetric=0
netsh interface ip set dns name="本地连接" source=static addr=202.102.152.3 register=PRIMARY
netsh interface ip add dns name="本地连接" addr=202.102.154.3
:UD
CLS
setlocal EnableDelayedExpansion
for /l %%i in (3,1,255) do (
set "aa=%%i"
ping/n 1 192.168.1.%%i >nul
if !ERRORLEVEL! equ 1 goto szip
)
goto :eof
:szip
set slection1=
set slection1=192.168.1.!aa!
echo 现在要设置的 IP地址:%slection1%
echo 子网掩码:255.255.255.0
echo 默认网关:192.168.1.1
echo 首选DNS服务器:202.102.152.3
echo 备用DNS服务器:202.102.154.3
PAUSE
cls
netsh interface ip set address name="本地连接" source=static addr=%slection1% mask=255.255.255.0
netsh interface ip set address name="本地连接" gateway=192.168.1.1 gwmetric=0
netsh interface ip set dns name="本地连接" source=static addr=202.102.152.3 register=PRIMARY
netsh interface ip add dns name="本地连接" addr=202.102.154.3
作者: Batcher 时间: 2008-8-30 19:56 标题: 回复 9楼 的帖子
http://bbs.bathome.net/thread-1689-1-1.html
作者: 反十字 时间: 2008-8-30 20:46
@echo off
rem 获取本地连接名称
rem WinXP SP2 EN 测试通过
rem WinXP SP3 CS 测试通过
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards" "%temp%\MyNet.reg" >nul
for /f "tokens=1 delims=:" %%a in ('type "%temp%\MyNet.reg"^|findstr /n Ethernet') do (
set "DstRow=%%a"
goto :next
)
goto :eof
:next
set /a SkpRow=DstRow-2
for /f "skip=%SkpRow% tokens=2 delims={}" %%a in ('type "%temp%\MyNet.reg"^|findstr .*') do (
for /f "skip=6 tokens=*" %%b in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\{%%a}\Connection"') do (
set LcoNet=%%b
call echo %%LcoNet:~12%%
goto :eof
)
)
这个我看了。不过看不懂。。请问哪位高手指点一下。这个命令如何把获取到的名字代入
netsh interface ip set address name="本地连接" source=static addr=192.168.0.3替换本地连接4个字
作者: Batcher 时间: 2008-8-30 21:00 标题: 回复 12楼 的帖子
- @echo off
- rem 获取本地连接名称
- rem WinXP SP2 EN 测试通过
- rem WinXP SP3 CS 测试通过
- setlocal enabledelayedexpansion
- reg export "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards" "%temp%\MyNet.reg" >nul
- for /f "tokens=1 delims=:" %%a in ('type "%temp%\MyNet.reg"^|findstr /n Ethernet') do (
- set "DstRow=%%a"
- goto :next
- )
- goto :eof
- :next
- set /a SkpRow=DstRow-2
- for /f "skip=%SkpRow% tokens=2 delims={}" %%a in ('type "%temp%\MyNet.reg"^|findstr .*') do (
- for /f "skip=6 tokens=*" %%b in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\{%%a}\Connection"') do (
- set LcoNet=%%b
- set LcoNet=!LcoNet:~12!
- netsh interface ip set address name="!LcoNet:~12!" source=static addr=192.168.0.3
- goto :eof
- )
- )
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |