批处理修改IP地址。原IP最后一位保留。只修改前三位。为什么出错?显示b不可接受值 5

echo正在更改IP地址,请稍等......for/f"tokens=2delims=:"%%ain('ipconfig^|find/i"ipaddress"')dofo... echo 正在更改IP地址,请稍等......
for /f "tokens=2 delims=:" %%a in ('ipconfig ^| find/i "ip address"')do for /f "tokens=4 delims=." %%b in ("%%a") do echo %%b
netsh interface ip set address name="本地连接" source=static addr=10.40.164.%^b mask=255.255.255.0 gateway=10.40.17.254 gwmetric=1
netsh interface ip set dns name="本地连接" source=static addr=202.96.128.86
netsh interface ip add dns name="本地连接" addr=202.96.128.166 index=2
ipconfig /flushdns
ipconfig /all
echo 更改IP地址完成!
goto end

:end
pause
展开
 我来答
依梦琴瑶
高粉答主

2019-05-17 · 说的都是干货,快来关注
知道顶级答主
回答量:6.9万
采纳率:82%
帮助的人:1.7亿
展开全部
@echo off
echo 正在更改IP地址,请稍等......
for /f "tokens=2 delims=:" %%a in ('ipconfig ^| find /i "ip address"') do (
    for /f "tokens=4 delims=." %%b in ("%%a") do (
        echo %%b
        netsh interface ip set address name="本地连接" source=static addr=10.40.164.%%b mask=255.255.255.0 gateway=10.40.17.254 gwmetric=1
    )
)
netsh interface ip set dns name="本地连接" source=static addr=202.96.128.86
netsh interface ip add dns name="本地连接" addr=202.96.128.166 index=2
ipconfig /flushdns
ipconfig /all
echo 更改IP地址完成!
goto end

:end
pause

在批处理里,for中的%%i 这类变量只能在for中调用,除了for是不能使用的,如果要出for使用,就需要先在for中进行set变量设置,然后在for外调用set的变量。

所以您代码不是说用%^b就能在for外调用的,而且也没有这样的用法。因此语法编写错误,导致代码执行失败。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式