2007年末,在上海的第一个项目中,需要在windows上虚拟N个用户进行业务操作,每个用户需要独立的IP地址,为此,用批处理实现了批量添加IP地址的脚本(笔者的第一个批处理脚本):
rem ==================================================================
rem 文件名称:StaticIP.bat
rem 文件标识:
rem 摘 要:add static IP address to Interface with "netsh" tool
rem 作 者:niwp
rem 修 改 者:
rem 修改内容:
rem 修改时间:
rem 版 本:2007-11-05
rem ==================================================================
@echo off
rem --------------------Variable Definition
set INTERFACE=本地连接
set MASK=255.255.255.0
set IPADDR=192.168.1
rem --------------------End of Variable Definition
rem
rem --------------------------Main Usage------------------------------
rem
:usage
echo # # # # # # # # # # # # # # # # # # # # #
echo # #
echo # 1. Add Static IP #
echo # 2. Delete Static IP #
echo # 3. Quit #
echo # #
echo # #
echo # # # # # # # # # # # # # # # # # # # # #
set /p SELECT="Select: "
if %SELECT% EQU 1 goto USAGEADD
if %SELECT% EQU 2 goto USAGEDEL
if %SELECT% EQU 3 exit
rem --------------------------End of Main Usage-----------------------
rem --------------------------Add IP Usage----------------------------
:USAGEADD
echo # # # # # # # # # # # # # # # # # # # # #
echo # #
echo # Add Static IP... #
echo # Input The IP Address to Add... #
echo # #
echo # # # # # # # # # # # # # # # # # # # # #
echo -----------------------------------------
echo The Default Interface name and Subnet mask:
echo Interface Name:%INTERFACE%
echo Subnet Mask :%MASK%
echo IP Address :%IPADDR%.*
echo -----------------------------------------
set /p CHNGDFULT="Change the Interface name and Subnet mask? "
if %CHNGDFULT% EQU y goto SETINTERFACE
if %CHNGDFULT% EQU Y goto SETINTERFACE
if %CHNGDFULT% EQU n goto FROMTO
if %CHNGDFULT% EQU N goto FROMTO
rem --------------------------End of Add IP Usage---------------------
rem ---------------------------Set Interface name and Subnet mask-----
:SETINTERFACE
set /p INTERFACE="Interface Name: "
set /p MASK="Subnet Mask: "
goto USAGEADD
rem ---------------------------End Set Interface name and Subnet mask-
rem --------------------------Input the IP Address--------------------
:FROMTO
echo Input the IP Address You Want to Add/Delete From-To:
set /p STARTIP="From: "
set /p ENDIP="To: "
if %STARTIP% LSS 0 goto ERROR
if %ENDIP% LSS 0 goto ERROR
if %STARTIP% GTR %ENDIP% goto ERROR
echo The IP Address is %IPADDR%.%STARTIP%-%IPADDR%.%ENDIP%
if %SELECT% EQU 1 goto LOOPADD
if %SELECT% EQU 2 goto LOOPDELETE
rem --------------------------End of Input the IP Address-------------
rem --------------------------Delete IP Usage-------------------------
:USAGEDEL
ipconfig | findstr "IP Address"
echo # # # # # # # # # # # # # # # # # # # # #
echo # #
echo # Delete Static IP... #
echo # Input The IP Address to Delete... #
echo # #
echo # # # # # # # # # # # # # # # # # # # # #
echo -----------------------------------------
echo The Default Interface name and Subnet mask:
echo Interface Name: %INTERFACE%
echo Subnet Mask : %MASK%
echo IP Address :%IPADDR%.*
echo -----------------------------------------
set /p CHNGDFULT="Change the Interface name and Subnet mask? "
if %CHNGDFULT% EQU y goto SETINTERFACE
if %CHNGDFULT% EQU Y goto SETINTERFACE
if %CHNGDFULT% EQU n goto FROMTO
if %CHNGDFULT% EQU N goto FROMTO
rem --------------------------End of Delete IP Usage------------------
rem --------------------------Loop of Add IP--------------------------
:LOOPADD
if %STARTIP% GTR %ENDIP% goto ADDSUCESS
netsh interface ip add address "%INTERFACE%" %IPADDR%.%STARTIP% %MASK%
echo %IPADDR%.%STARTIP% added
set /a STARTIP=%STARTIP% + 1
goto LOOPADD
rem --------------------------End Loop of Add IP----------------------
rem --------------------------Loop of Delete IP-----------------------
:LOOPDELETE
if %STARTIP% GTR %ENDIP% goto DELETESUCESS
netsh interface ip delete address "%INTERFACE%" %IPADDR%.%STARTIP%
echo %IPADDR%.%STARTIP% deleted
set /a STARTIP=%STARTIP% + 1
goto LOOPDELETE
rem --------------------------End Loop of Delete IP-------------------
rem --------------------------Added Sucessfully-----------------------
:ADDSUCESS
echo Static IP Added Sucessfully!
pause
exit
rem --------------------------End of Added Sucessfully----------------
rem --------------------------Deleted Sucessfully---------------------
:DELSUCESS
echo Static IP Deleted Sucessfully!
pause
exit
rem --------------------------End of Deleted Sucessfully--------------
rem --------------------------Error Message---------------------------
:ERROR
echo Error! Input the IP Address Again!
goto FROMTO
rem --------------------------End of Error Message--------------------