求一个批处理代码

我有这样一组代码:
将指定的动态域名(暂时假设为 aaa.bbb.com )解析出来的IP地址以" ip + 空格 + abcd”的格式写入hosts文件
例如解析出来的ip是61.139.5.44
那么写入hosts文件的格式为: 61.139.5.44 abcd
代码如下:

@echo off

for /f "tokens=2 delims=[]" %%a in ('ping aaa.bbb.ccc^|find /i "["') do set "ip=%%a"

if defined ip echo %ip% abcd>>C:\WINDOWS\system32\drivers\etc\hosts

现在请您帮忙再帮忙添加一段代码实现如下功能:
1、如果获取到了aaa.bbb.ccc的ip就删除hosts文件中原来的那一段" ip + 空格 + abcd"的代码并写入新获取到的" ip + 空格 + abcd"的代码,并提示:“恭喜,修改完成,按任意键关闭。”
2、如果没获取到aaa.bbb.ccc的ip就提示“抱歉本次没获取到ip,请联系管理员。按任意键关闭该窗口。”

@echo off&setlocal enabledelayedexpansion
rem ym=要解析的域名
rem hosts=hosts文件存储位置
rem tph=临时交换文件,可不改
set ym=bb.com
set hosts=C:\WINDOWS\system32\drivers\etc\hosts
set tph=2.txt
echo -------------------------------------------------------------------
echo 正在解析域名 %ym% ,请稍候...
echo -------------------------------------------------------------------
for /f "tokens=2 delims=[]" %%a in ('ping %ym%^|findstr /i "["') do set "ip=%%a"
if defined ip (
if exist %tph% del /q %tph%
for /f "delims=" %%a in (%hosts%) do (
for /f "tokens=1* delims=:" %%i in ('call echo %%a^|findstr /v /i "%ym%"') do Echo %%a>>"%tph%"
)
Echo %ip% %ym%>>"%tph%"
color 0a
copy /y %tph% %hosts%
if exist %tph% del /q %tph%
echo -------------------------------------------------------------------
echo 域名:%ym%,地址:%ip%,添加至hosts成功
) else (
color 06
echo 域名:%ym%,对应地址无法找到!!!
)
echo -------------------------------------------------------------------
pause
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-25
@echo off
 for /f "tokens=2 delims=[]" %%a in ('ping aaa.bbb.ccc^|find /i "["') do set "ip=%%a"
pushd C:\WINDOWS\system32\drivers\etc\hosts
if defined ip (
(for /f "delims=" %%a in (hosts) do (
echo %%a|findstr "abcd$">nul&&echo %ip% abcd||echo %%a
))>temphost
move /y temphost hosts
echo  恭喜,修改完成,按任意键关闭。
) else ( echo 抱歉本次没获取到ip,请联系管理员。按任意键关闭该窗口。)
popd
pause&exit

相似回答