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

作者:无名 - DOS/BAT -

批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为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.

IT人知识库 该篇知识地址:http://www.itpeo.net/12767/525845.html





BAT 批处理脚本教程(详细篇脚本之家补充)

第一章 批处理基础 第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个... ...

DOS的重定向命令使用方法以及在安全方面的应用

大家知道,DOS下有一个不为大家所常用的命令——重定向命令,这个小东西非常有用,该命令同样可以用于 Win9x/ME/2... ...

通过批处理关闭135 137 445等端口的实现代码(勒索病毒)

主要是通过bat操作防火墙添加规则,一般是tcp与udp。 日前,全球近百个国家和地区都有电脑系统遭受一个名为Wanna... ...

rfedfre

Windows CMD命令大全(值得收藏)

命令简介 cmd是command的缩写.即命令行 。 虽然随着计算机产业的发展,Windows 操作系统的应用越来越广泛... ...

利用bat批处理程序通过DOS命令行删除所有的空文件夹的方法

用过gothub或者码云的同学都知道,不包含任何文件的空文件夹上传提交时不被允许的。当然你可以在空文件下创建.keep文... ...

常用dos命令总结

什么是DOS命令 DOS命令,计算机术语,是指DOS操作系统的命令,是一种面向磁盘的操作命令,主要包括目录操作类命令、磁... ...

rfedfre

bat命令批处理判断32位还是64位系统的多种方法

第一种代码:通过 %PROCESSOR_ARCHITECTURE% 可以通过cmd中 通过echo %PROCESSOR... ...

rfedfre

批处理一键安装JDK/一键安装JRE和自动配置Java环境变量

安装JDK/安装JRE以及配置java环境变量对于java初学者来说是一件比较头疼的事情,这边分享一个简单的批处理命令,... ...

bat 批处理 for 命令快速入门

格式:FOR [参数] %%变量名 IN (相关文件或命令) DO 执行的命令 作用:对一个或一组文件,字符串或命令结果... ...

rfedfre

一键设置java 环境变量 cmd下查看、修改(覆盖与添加)等说明

上来就给点干货吧 利用脚本,一键设置java环境变量(默认安装路径) @echo off color 0a echo... ...