REM 自动绑定MAC地址和设置DHCP保留的脚本(by tangz)
@ECHO ON
SETLOCAL EnableDelayedExpansion
SET IPTXTPATH=C:\DHCPWEB\IP.TXT
REM IPTXTPATH为IP.TXT文件存放的路径。
REM 如果IP.TXT文件不存在,直接退出。否则读取IP.txt文件生成时间和SET.ini里UpdateDateTime的时间。
IF NOT EXIST %IPTXTPATH% (GOTO END) ELSE (
FOR %%h IN (%IPTXTPATH%) DO (SET IPTXTDATE=%%~th)
FOR /F "tokens=1,2 delims==" %%f IN (SET.ini) DO (SET UpdateDateTime=%%g)
)
REM 判断IP.txt文件有没有修改,如果没有修改直接跳到:IPMAC,否则更新UpdateDateTime为IP.txt文件的修改时间。
IF "%UpdateDateTime%"=="%IPTXTDATE%" (GOTO IPMAC) ELSE (ECHO UpdateDateTime=%IPTXTDATE%>SET.ini)
REM 判断MAC.BAT文件是否存在
IF EXIST MAC.BAT DEL MAC.BAT
REM 判断NETSH.TXT文件是否存在
IF EXIST NETSH.TXT DEL NETSH.TXT
REM 生成NETSH.TXT和MAC.BAT文件
ECHO DHCP >>NETSH.TXT
ECHO SERVER >>NETSH.TXT
FOR /F "tokens=1,2,3,4,5" %%i IN (%IPTXTPATH%) DO (
IF NOT "%%i"=="保留" (
IF NOT DEFINED %%m (
SET %%m=A & ECHO SCOPE %%m>>NETSH.TXT
IF EXIST REIP.TXT DEL REIP.TXT
NETSH DHCP SERVER SCOPE %%m SHOW RESERVEDIP >REIP.TXT
FOR /F "skip=7 tokens=1,2,3,4" %%a IN (REIP.TXT) DO (IF "%%d"=="" (IF NOT "%%c"=="" (SET var=%%c & ECHO DELETE RESERVEDIP %%a !var:-=!>>NETSH.TXT)))
)
SET var=%%k & ECHO ADD RESERVEDIP %%j !var:-=!reservedip %%i both>>NETSH.TXT
)
ECHO ARP -s %%j %%k -N %%l >>MAC.BAT
)
ECHO EXIT >>NETSH.TXT
:RESERVEDIP
ECHO 设置DHCP保留
CALL NETSH <NETSH.TXT
:IPMAC
ECHO IP和MAC绑定
CALL MAC
:END
ECHO 结束
ENDLOCAL |
|