子网掩码到变量DOS批处理

时间:2015-09-04 15:10:38

标签: windows batch-file cmd

总而言之,我需要将子网掩码单独添加到我可以在DOS中使用的变量

我可以自己获取IP地址但需要掩码我还需要将这些值提供给批处理文件的其他部分

我怎么能独自显示面具?我搜索了一下,最近我来的是netsh命令,但只能散布信息。

我需要隔离子网掩码。

希望有人有个主意吗?

由于

Confuseis

2 个答案:

答案 0 :(得分:2)

让我们使用netsh int ip show config "Your connection name"

的输出
Configuration for interface "Your connection name"
    DHCP enabled:                         Yes
    IP Address:                           192.168.1.111
    Subnet Prefix:                        192.168.1.0/24 (mask 255.255.255.0)
    Default Gateway:                      192.168.1.1
    Gateway Metric:                       0
    InterfaceMetric:                      10
    DNS servers configured through DHCP:  192.168.1.1
    Register with which suffix:           Primary only
    WINS servers configured through DHCP: None

通过在mask(之间提取文字然后获取最后一个标记来解析)行:

@echo off
for /f "delims=() tokens=2" %%a in (
    'netsh int ip show config "Your connection name" ^| findstr /r "(.*)"'
) do for %%b in (%%a) do set mask=%%b
echo The netmask is %mask%
pause

要提取掩码位值(在这种情况下为24),请在代码中使用delims=/(而不是delims=()

答案 1 :(得分:0)

我已经测试了下面的答案。这将使子网掩码变为变量,在本例中为%subnet%

for /f "tokens=2,* delims=:" %%A in ('ipconfig ^| find "Subnet"') do set subnet=%%A
set subnet=%subnet:~1%
echo %subnet%