::::::::::获取MAC IP NAME并保存::::::::::::::::::::::::::::::::::::::::::::::::::↓
:LIST
Find "%COMPUTERNAME%" "%~dp0"CONFIG.txt > NUL
IF %errorlevel% == 0 GOTO :HAVELIST
FOR /F "usebackq eol=; tokens=2 delims=:" %%I in (`ipconfig /all^|find /i "Physical Address"`) do set MAC=%%I
FOR /F "usebackq eol=; tokens=2 delims=:" %%I in (`ipconfig /all^|find /i "IP Address"`) do set IP=%%I
FOR /F "usebackq eol=; tokens=2 delims=:" %%I in (`ipconfig /all^|find /i "Subnet Mask"`) do set MASK=%%I
FOR /F "usebackq eol=; tokens=2 delims=:" %%I in (`ipconfig /all^|find /i "Default Gateway"`) do set GATEWAY=%%I
FOR /F "usebackq eol=; tokens=2 delims=:" %%I in (`ipconfig /all^|find /i "DNS Servers"`) do set DNS1=%%I
FOR /F "skip=19 tokens=1 usebackq" %%I in (`ipconfig /all`) do set DNS2=%%I
ECHO %MAC% %COMPUTERNAME% %IP% %MASK% %GATEWAY% %DNS1% %DNS2%>>"%~dp0"CONFIG.txt
IF /I "%~1"=="/l" EXIT
ECHO 信息收集完毕并保存到 %~dp0CONFIG.txt
GOTO :QUIT
::::::::::获取MAC IP NAME并保存::::::::::::::::::::::::::::::::::::::::::::::::::↑
::::::::::识别MAC,并据此进行设置:::::::::::::::::::::::::::::::::::::::::::::::::↓
:SET
FOR /F "usebackq eol=; tokens=2 delims=:" %%I in (`ipconfig /all^|find /i "Physical Address"`) do set MAC=%%I
find /i "%MAC%" "%~dp0CONFIG.txt" > nul
IF %errorlevel% == 1 GOTO :NO_LIST
FOR /F "tokens=2,3,4,5,6,7" %%j in ('find /i "%MAC%" "%~dp0CONFIG.txt"') do (
SET TCOMPUTERNAME=%%j
SET IP=%%k
SET MASK=%%l
SET GATEWAY=%%m
SET DNS1=%%n
SET DNS2=%%o
)
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName /v "ComputerName" /t REG_SZ /d %TCOMPUTERNAME% /f
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName /v "ComputerName" /t REG_SZ /d %TCOMPUTERNAME% /f
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v "Hostname" /t REG_SZ /d %TCOMPUTERNAME% /f
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v "NV Hostname" /t REG_SZ /d %TCOMPUTERNAME% /f
netsh interface ip set address name="本地连接" source=static addr=%IP% mask=%MASK% gateway=%GATEWAY% gwmetric=0
netsh interface ip set dns name="本地连接" source=static addr=%DNS1% register=PRIMARY
netsh interface ip add dns name="本地连接" addr=%DNS2%
IF /I "%~1"=="/s" GOTO :SHUT_Y
echo.
echo 提示:
echo 信息设置完毕.建议按"R"重新启动.(推荐!)
GOTO :SHUT_W
::::::::::识别MAC,并据此进行设置:::::::::::::::::::::::::::::::::::::::::::::::::↑
::::::::::同步服务器时间:::::::::::::::::::::::::::::::::::::::::::::::::::::::::↓
:TTIME
FOR /f "tokens=1 delims=\" %%i in ("%~dp0") do NET TIME \\%%i /SET /Y
IF /I "%~1"=="/t" EXIT
ECHO 时间同步为: %date% %time%
GOTO :QUIT
::::::::::同步服务器时间:::::::::::::::::::::::::::::::::::::::::::::::::::::::::↑
::**************************************************************
:: 解析ipconfig命令输出通用函数
::**************************************************************
:select
for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| findstr /i /c:%1') do if not "!%~2!" == "" set "%~2=%%i"
goto :eof
::::::
可以对上面的获取段进行简化,可是DNS2有什么比较好的获取方式吗?排除我的算行方式.