标题: 修改host文件后的问题?
[打印本页]
作者: blueghost
时间: 2009-12-9 17:52
标题: 修改host文件后的问题?
@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刷新下缓存呢?请指教
作者: blueghost
时间: 2009-12-10 11:43
我还想加个进度条进行显示,免得脚本运行闪一下就了事,其他部门的同事根本不懂,也不觉得有多高深。。。。。
谁知道啊?
作者: HAT
时间: 2009-12-10 13:35
标题: Re 2楼
加个进度条就高深了?
作者: 523066680
时间: 2009-12-10 14:19
要感觉高深呀,去掉echo off~
作者: Hanyeguxing
时间: 2009-12-10 14:56
虚荣啊,是最大的原罪。。。
作者: blueghost
时间: 2009-12-10 17:05
虚荣可以先搁着,还是没人告诉我怎么解决我发贴提出的问题啊?
是用
call:ipconfig
:ipconfig /flushdns
&&GOTO :EOF
来调用吗?怎么不行呢?插哪里啊?
作者: Hanyeguxing
时间: 2009-12-11 12:13
Quote: |
Originally posted by blueghost at 2009-12-10 17:05:
虚荣可以先搁着,还是没人告诉我怎么解决我发贴提出的问题啊?
是用
call:ipconfig
:ipconfig /flushdns
&&GOTO :EOF
来调用吗?怎么不行呢?插哪里啊? |
|
只用ipconfig /flushdns就可以,前面加上:,则该命令不会被执行
作者: blueghost
时间: 2009-12-11 12:33
我把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
作者: Hanyeguxing
时间: 2009-12-11 12:56
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 ]
作者: blueghost
时间: 2009-12-11 13:19
搞定,谢谢楼上大侠