批处理检查host文件里是否存在1.1.1.2地址,如果存在就不处理,如果不存在就添加,求大神这个

批处理检查host文件里是否存在1.1.1.2地址,如果存在就不处理,如果不存在就添加,求大神这个以上需求我自己写了个,但是没实现,

@echo off

for /f "eol=# delims=" %%a in ('type %windir%\system32\drivers\etc\hosts^|findstr "10.22.210.222"') do (

if %%a=="" (

echo 10.22.210.222>>"%windir%\system32\drivers\etc\hosts"

))

pause
求个大神,帮忙瞄下这个语句哪里有问题,或者直接写个也行,

右键管理员运行BAT

@echo off
for /f "eol=# delims=" %%a in ('type "%windir%\system32\drivers\etc\hosts"^|findstr "10.22.210.222"') do set flag=1
if not defined flag echo 10.22.210.222>>"%windir%\system32\drivers\etc\hosts"

追问

大神,你的代码可以实现,但是能否帮忙分析下我的代码为什么会出错,if %%a==""这句中的if为什么没有执行到,还有你的代码中if not defined flag中的flag为什么没有用变量的形式调用%flag%,分析错误原因远胜于代码本身,求大神告知,谢谢!

追答

如果不存在目标IP,for循环内代码根本不会被执行。
if not defined flag 不用变量是它的规定

追问

为什么呢

if %%a="" 如果没有,%%a应该是空,条件成立啊,怎么没执行呢

追答

更多的问题私信联系加我好友吧,用APP回答打字有点累,有不能发代码。

追问

好吧,你QQ多少,加下,我向你学习

296040204

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答