基本上,我需要做的是获取 Win7 机器的默认网关,我已经使用以下代码完成了:
@echo off
for /f "skip=1 delims={}, " %%A in ('wmic nicconfig get defaultIPgateway') do for /f "tokens=1" %%B in ("%%~A") do set "IP=%%~B"
echo %IP%
问题是,我需要做的是拉出最后一部分(所以从10.10.10.1
,我需要1
,检查它是1
,,65
或)添加一个数字83
,192
然后将其重新组成完整的 IP - 例如。10.10.10.2
我被困在分裂部分......
我有:
FOR /F "DELIMS=. TOKENS=4" %a IN %%IP%% DO ECHO %d
我究竟做错了什么?
非常感谢您的帮助。
谢谢,
答案1
如何从默认网关 IP 地址获取最后一个八位字节?
使用以下批处理文件:
@echo off
setlocal
setlocal enabledelayedexpansion
rem throw away everything except the ip address line
for /f "usebackq" %%a in (`wmic nicconfig get defaultIPgateway ^| findstr "{"`) do (
rem we have for example {"192.168.42.129"}
rem split on " and get 2nd token
for /f delims^=^"^ tokens^=2 %%b in ('echo %%a') do (
rem we have 192.168.42.129
rem split on . and get 4 tokens (octets)
for /f "tokens=1-4 delims=." %%c in ("%%b") do (
rem we have 129
set _o1=%%c
set _o2=%%d
set _o3=%%e
set _o4=%%f
)
)
)
echo %_o4%
endlocal
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
- 对于/f- 循环命令以执行另一个命令的结果。