中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-12 22:33
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 修改host文件后的问题? 查看 1,215 回复 9
楼 主 修改host文件后的问题? 发表于 2009-12-09 17:52 ·  中国 湖北 武汉 武昌区 电信
新手上路
积分 5
发帖 5
注册 2009-11-24 16:20
16年会员
UID 155261
性别 男
状态 离线
@ECHO off&&SET HOSTS=%windir%\system32\drivers\etc\hosts&&SET IP=127.0.0.1
>%HOSTS% ECHO # 本计算机名:%COMPUTERNAME%
FOR /F "eol=# skip=5" %%i in ('findstr /v "^/" %~nx0') DO ECHO %IP% %%i >>%HOSTS%
FOR /F "delims=/" %%i in ('findstr "^/" %~nx0') DO ECHO %%i >>%HOSTS%
&&GOTO :EOF
localhost
/192.168.1.1 vodone.com
/192.168.1.2 www.vodone.com
/192.168.1.3 vlog.vodone.com
/192.168.1.4 images.vodone.com


这个修改HOST文件的过程结束后怎么在调用ipconfig /flushdns刷新下缓存呢?请指教
2 发表于 2009-12-10 11:43 ·  中国 湖南 长沙 电信
新手上路
积分 5
发帖 5
注册 2009-11-24 16:20
16年会员
UID 155261
性别 男
状态 离线
我还想加个进度条进行显示,免得脚本运行闪一下就了事,其他部门的同事根本不懂,也不觉得有多高深。。。。。

谁知道啊?
3 Re 2楼 发表于 2009-12-10 13:35 ·  中国 北京 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
加个进度条就高深了?
4 发表于 2009-12-10 14:19 ·  中国 广东 广州 花都区 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
18年会员
UID 110072
性别 男
状态 离线
要感觉高深呀,去掉echo off~
5 发表于 2009-12-10 14:56 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
虚荣啊,是最大的原罪。。。
6 发表于 2009-12-10 17:05 ·  中国 湖南 长沙 电信
新手上路
积分 5
发帖 5
注册 2009-11-24 16:20
16年会员
UID 155261
性别 男
状态 离线
虚荣可以先搁着,还是没人告诉我怎么解决我发贴提出的问题啊?
是用
call:ipconfig
:ipconfig /flushdns
&&GOTO :EOF
来调用吗?怎么不行呢?插哪里啊?
7 发表于 2009-12-11 12:13 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
Originally posted by blueghost at 2009-12-10 17:05:
虚荣可以先搁着,还是没人告诉我怎么解决我发贴提出的问题啊?
是用
call:ipconfig
:ipconfig /flushdns
&&GOTO :EOF
来调用吗?怎么不行呢?插哪里啊?


只用ipconfig /flushdns就可以,前面加上:,则该命令不会被执行
8 发表于 2009-12-11 12:33 ·  中国 湖南 长沙 电信
新手上路
积分 5
发帖 5
注册 2009-11-24 16:20
16年会员
UID 155261
性别 男
状态 离线
我把ipconfig加进去并能够执行了,但进度条加了后host文件添加很多不需要的数据,怎么回事呢?

@ECHO off&&SET HOSTS=%windir%\system32\drivers\etc\hosts&&SET IP=127.0.0.1
>%HOSTS% ECHO # PC-NAME:%COMPUTERNAME%
FOR /F "eol=# skip=5" %%i in ('findstr /v "^/" %~nx0') DO ECHO %IP% %%i >>%HOSTS%
FOR /F "delims=/" %%i in ('findstr "^/" %~nx0') DO ECHO %%i >>%HOSTS%
ipconfig /flushdns

color 3f
title.
mode con lines=10
rem 进度条 ▉▉▉▉▉
set work=0
set n=0
set mo=0
set number=0
rem all是总数
set all=60
set time=%all%
:show

:check
if %number% GTR %mo% set num=%num%▉&set /a mo=%mo%+1&goto check

:2

cls
echo 进度: %n% / %all% 剩余时间:%time%秒
echo.
echo.
echo 完成 %work% %%%
echo.
if not "%num%"=="" echo %num%
if not "%num%"=="" echo %num%

if %work%==100 goto end

ping 127.1 -n 1 >nul
set /a n=%n%+1
set /a time=%all%-%n%
set /a work=(%n%)*100/(%all%)
set /a number=%work%/3
set /a number=%number%+1
goto show
endlocal

:end
endlocal

&&GOTO :EOF
/192.168.1.1 vodone.com
/192.168.1.2 www.vodone.com
/192.168.1.3 vlog.vodone.com
/192.168.1.4 images.vodone.com
9 发表于 2009-12-11 12:56 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
FOR /F "eol=# skip=5" %%i in ('findstr /v "^/" %~nx0') DO ECHO %IP% %%i >>%HOSTS%
FOR /F "delims=/" %%i in ('findstr "^/" %~nx0') DO ECHO %%i >>%HOSTS%
把这两个去掉,直接用>>%HOSTS% echo 192.168.1.4 images.vodone.com这样的命令来输出。

你的问题是因为使用了findstr "^/" %~nx0
如果你很想使用findstr,那么需要使用/b参数,强制匹配行首,以区别命令参数中的/

[ Last edited by Hanyeguxing on 2009-12-11 at 13:12 ]
10 发表于 2009-12-11 13:19 ·  中国 湖南 长沙 电信
新手上路
积分 5
发帖 5
注册 2009-11-24 16:20
16年会员
UID 155261
性别 男
状态 离线
搞定,谢谢楼上大侠
论坛跳转: