IP地址自动设置的批处理代码分享

批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD。这些命令统称批处理命令。

小知识:可以在键盘上按下Ctrl+C组合键来强行终止一个批处理的执行过程。

一般常规的批处理命令,按照自上而下的顺序逐行执行,也就是说,只有第一行命令执行之后,才可能执行第二行,第二行执行之后,才可以执行到第三行.....如此依次执行。那么,如果对于不同的情况,需要执行不同的既定操作,常规的执行规则显然是无法完成任务的,这种应用场景下怎么办呢?我们就需要引入流程跳转的概念,即就是动用流程跳转语句goto了。流程跳转的含义:改变默认的执行顺序,强制跳转到指定的位置执行特定的程序块。

  为什么要把goto和冒号这两个命令联合起来介绍?因为它们是分不开的,无论少了哪个或多了哪个都会出错。goto是个跳转命令,紧跟其之后的是标签名;冒号是一个标签标志,紧跟其之后的是标签名,两者合称标签。当程序运行到goto时,将自动跳转到冒号定义的部分去执行(呵呵~试想一下,是不是分不开?)。goto语句与标签一一呼应,在实现流程跳转时相辅相成,缺一不可。

基础知识介绍完毕,我们来看一个IP地址自动设置的批处理的实例代码

@echo off
MODE con: COLS=80 lines=30
color 0b
title 自动IP By L

echo =====================
echo   自动IP By L
echo =====================

rem eth //eth 为网卡名称
echo 1.检测活动网卡...
rem 获取网络连接名称

@(for /f "tokens=3*" %%a in ('netsh interface show interface^|more +2') do @echo,%%b)>"network.txt"
set j=0
for /f "tokens=*" %%i in (network.txt) do (
  set /a j+=1
  set con!j!=%%i
  call set eth=%%con!j!%%
)
echo 当前活动网卡名称为:%eth%
set ipduan=149.32.49
rem gw //网关
set gw=%ipduan%.1
rem netmasks //子网掩码
set netmasks=255.255.255.0
rem 最大和最小IP地址
set MAXID=205
set MINID=5

echo 2.检查ID配置...
set j=0
for /f "tokens=*" %%i in (nowid.txt) do (
  set /a j+=1
  set con!j!=%%i
  call set oldid=%%con!j!%%
)

if %oldid% LSS %MINID% (
echo 检查nowid.txt文件,ID:%oldid%不能小于%MINID%
goto changeerror)

echo 3.生成下一个ip地址...

set j=0
for /f "tokens=*" %%i in (nowid.txt) do (
  set /a j+=1
  set con!j!=%%i
  call set id=%%con!j!%%
)
echo --------
echo 上一个编号为:%id%
echo 上一个ip地址为:%ipduan%.%id%
echo --------
set /a newid=%id%+1
if %newid% GTR %MAXID% (
echo IP段分配已达上限:%ipduan%.%MAXID%!请重新修改nowid.txt文件或检查IP地址
goto changeerror
) else (
echo %newid% > nowid.txt
echo 下一个编号为:%newid%
)

rem ip //ip 为你想更改的IP
set ip=%ipduan%.%newid%
echo 下一个ip地址:%ip%
echo 下一个ip地址网关:%gw%
echo 下一个ip地址掩码:%netmasks%
echo --------
echo 4.本机IP更改: %ip%
rem 

netsh interface ipv4 set address %eth% static %ip% %netmasks% %gw%
rem >nul
echo.
echo 5.验证当前本机IP:

ipconfig -all >ipconfig.txt
type ipconfig.txt | find "%ip%" && goto success
:changeerror
echo 修改失败,请手动分配IP地址!
goto :end
:success
echo 修改成功
goto :end
:end

pause
echo.
(0)

相关推荐

  • 获取外网IP地址的批处理代码

    复制代码 代码如下: ::========================================== :: IP.bat :: v0.1 :: jinminghou.cn@2009-12-22 ::========================================== @echo off title GetIP set ip=unknown echo On Error Resume Next:Set oDOM=WScript.GetObject("http://www.j

  • 批处理经典入门教程!(从不懂到高手)第1/5页

    我们补充说明:批处理相对来说是比较简单的语言,大家可以通过多写多看别人的实例来学习,不懂的百度一下. 这是一篇技术教程,真心诚意会用很简单的文字表达清楚自己的意思,只要你识字就能看懂,就能学到知识.写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话:如果爱可以让事情变的更简单,那么就让它简单吧!看这篇教程的方法,就是慢!慢慢的,如同品一个女人.一杯茗茶,你会发现很多以前就在眼前的东西突然变的很遥远,而有些很遥远的东西却又突然回到了眼前.. 先概述一下批处理是个什么东东.批处理的定义,至今我

  • 批处理 Set 命令详解 让你理解set命令第1/2页

    set,E文翻译过来就是"设置"的意思,相当于数学里的"令". 如:set X=5,就是令X=5的意思. 语法形式: SET [variable=[string]] SET /P variable=[promptString]  SET /A expression 一.SET [variable=[string]] 示例1: @echo off  set pause  显示所有的变量的值 示例2: @echo off  set var=我是值  echo %var%

  • 批处理获取网卡名称的代码(附修改IP、网关、DNS脚本)

    复制代码 代码如下: ::用ipconfig /all命令获取网卡名称. FOR /F "tokens=2*" %%i IN ('ipconfig/all^|find /i "Ethernet adapter "') DO set name=%%j ::用for命令删除网卡名称后面的冒号. FOR /F "tokens=1* delims=:" %%i in ("%name%") do set 网卡名称=%%i 套用上面的脚本

  • windows批处理命令教程

    批处理文件是无格式的文本文件,它包含一条或多条命令.它的文件扩展名为 .bat 或 .cmd.在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们.使用批 处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务.当然我们的这个版本的主要内容是介绍批处理在入侵中一些实际运用,例如我们后面要提到 的用批处理文件来给系统打补丁.批量植入后门程序等.下面就开始我们批处理学习之旅吧. 一.简单批处理内部命令简介 1.echo

  • BAT批处理中的字符串处理详解(字符串截取)

    下面对这些功能一一进行讲解. 1.截取字符串 截取字符串可以说是字符串处理功能中最常用的一个子功能了,能够实现截取字符串中的特定位置的一个或多个字符.举例说明其基本功能: 复制代码 代码如下: @echo off set ifo=abcdefghijklmnopqrstuvwxyz0123456789 echo 原字符串(第二行为各字符的序号): echo %ifo% echo 123456789012345678901234567890123456 echo 截取前5个字符: echo %if

  • Windows下用命令行修改IP地址的方法详解(附批处理文件)

    由于我所处的地方要经常在不同的网络之间切换,比如局域网.系统内部网和外网(光是外网我要常常在3个ADSL网之间切换).我之前一直用的方法是在本机上设置多个不同网段的IP,然后切换路由(Route),这样不同的网段通过不同的网关出去,就可以达到同时访问多个网络的目的.但是这样我发现经常可能出现一些问题,所以我决定用最原始的方法来解决,那就是在要使用某一个网段的时候就只用这个网段的IP,这样就需要不停的更换IP地址.当然,在Windows的"网络连接"属性中这样的更改是很麻烦的,不过还好的

  • 批处理、VBS实现自动设置IP、默认网关、DNS、WINS、IE代理(全)

    因为公司有同事负责大连.沈阳两个城市,经常在两地来回走动,到每个城市后,都要自己手动更改相应的网络配置,况且到外地时住的是酒店, 酒店上网是自动获得IP,又要将网络设置取消,真的很麻烦!于是想起写一个批处理!来解决这个问题!主要用到的命令是netsh. -.第一种方法是将两地的网络配置先进行本机设置,然后再导出,等用到的时候,再分别导入. 1.将现有的配置导出到d:\dalian.txt中: netsh –c interface dump > d:\dalian.txt 2.将之前导出的d:\d

  • bat批处理 if 命令示例详解

    if 命令示例详解 if,正如它E文中的意思,就是"如果"的意思,用来进行条件判断.翻译过来的意思就是:如果符合某一条件,便执行后面的命令. 主要用来判断,1.两个"字符串"是否相等:2.两个数值是大于.小于.等于,然后执行相应的命令. 当然还有特殊用法,如结合errorlevel:if errorlevel 1 echo error 或者结合defined(定义的意思):if defined test (echo It is defined) else echo 

  • 批处理bat设置固定IP地址和自动IP地址

    在我个人的使用经验中,我有不同的工作环境,比如公司和家里,公司要求固定IP,而家里则使用自动获取IP的方式,所以我就在网上找了这段代码,并且经过自己的修改,可以直接双击运行就可以,方便IP地址的切换. 这里主要使用netsh命令,不太明白的可以自己去百度查,这里就不列举它的用法了,具体代码如下: 固定IP和DNS.bat 复制代码 代码如下: @echo off cls color 0A Echo *************************************************

  • 批处理命令Start的使用介绍

    Start 启动单独的"命令提示符"窗口来运行指定程序或命令.如果在没有参数的情况下使用,start 将打开第二个命令提示符窗口. 语法 start ["title"] [/dPath] [/i] [/min] [/max] [{/separate | /shared}] [{/low | /normal | /high | /realtime | /abovenormal | belownormal}] [/wait] [/b] [FileName] [param

随机推荐