获取局域网Ip的脚本
这个bat脚本我在中文语言系统下可以获取到IP,在英文系统下就不能获取,求助是哪里的问题,万分感谢! 没有发现问题,怀疑是被杀软阻止了 ipconifg不是更好吗? 我以为是获取局域网老婆,老色批想多了 win+R输入CDM-输入ipconfig或者ipconfig /all
Find 提取的字符串"ipv4" 英文系统显示是不是不一样 @echo off
REM 设置网络适配器的名称
REM 英文系统一般是:Local Area Connection
REM set "AdapterName=Local Area Connection"
REM 中文系统一般是:本地连接
set "AdapterName=本地连接"
set "FileTmp=%temp%\ipList.txt"
ipconfig /all >"%FileTmp%"
for /f "delims=:" %%i in ('findstr /n /c:"%AdapterName%" "%FileTmp%"') do (
set "SkipRow=%%i"
goto :DoSkip
)
:DoSkip
for /f "tokens=2 delims=:(" %%i in ('more +%SkipRow% "%FileTmp%" ^| findstr /v "IPv6" ^|findstr "IP"') do (
set "IP=%%i"
goto :ShowResult
)
:ShowResult
set "IP=%IP: =%"
echo,%IP%
pause
这样会不会好一点 你改下编码格式试试? 本帖最后由 Samael 于 2021-10-26 17:04 编辑
试试可以正常获取不可以支持多网卡
@Echo OFF & Setlocal EnableDelayedExpansion
Echo. & Color 07
Set "str=defaultipgateway^,ipAddress^,DNSserversearchorder^,ipsubnet^,dhcpenabled^,MACAddress"
For /f "skip=1tokens=1*" %%i IN ('wmic nic where "manufacturer<>'microsoft' and netconnectionstatus='2'" get INdex^,netconnectionid^') DO (
For /f "tokens=1* Delims= " %%j IN ("%%j") DO (
Set $%%i=%%j
For /f "tokens=1-3Delims={}," %%a IN ('wmic nicconfig where "INdex='%%i'" get %str% /value') DO (
For /f %%c IN (%%c) DO IF /i "%%a" == "DNSserversearchorder=" Set "DNS2=%%c"
For /f %%c IN ("%%a%%~b") DO Set "%%c"
)
IF /i "!dhcpenabled!" == "true" (Echo.MAC:!MACAddress! 自动获取-网卡:%%j) Else (Echo.MAC:!MACAddress! 手动指定-网卡:%%j )
Echo. 地址 :!ipAddress!
Echo. 掩码 :!ipsubnet!
Echo. 网关 :!defaultipgateway!
Echo. 主DNS:!DNSserversearchorder!
Echo. 备DNS:!DNS2!
)
)
pause Samael 发表于 2021-10-26 16:58
试试可以正常获取不可以支持多网卡
@Echo OFF & Setlocal EnableDelayedExpansio ...
中文系统下打开乱码
页:
[1]
2