목적

hosts에 아래 주소 추가

  1. 192.168.0.200    www.test1.com

  2. 1번의 작업하는 과정에서 기존 hosts 내 화살표 같은 특수문자(아래 그림)로 인해
    이후 추가된 주소는 인식 못하는 증상 발견



  3. 결국 2번의 기존 주소(172.16.0.10    oldaddr.com) 중 특수문자 삭제하고 1번 주소 추가하고자 함 (add_host.bat)

  4. 1~3번 작업 후 일정 기간 경과하여 다시 1번의 주소 삭제하고자 함 (remove_host.bat)

[Add_host.bat]

set hosts=%windir%\system32\drivers\etc\hosts

attrib -r %hosts%

find /C /I "www.test1.com" %hosts%

IF %ERRORLEVEL% EQU 0 goto END

set NEWLINE=^& echo.

set filename=%date%_%time:~0,2%%time:~3,2%%time:~6,2%

ren %temp%\hostback.txt hostback_%filename%.txt

findstr /I /V "oldaddr.com" %hosts%>>%temp%\hostback.txt

ren %hosts% hosts_%filename%

type %temp%\hostback.txt>>%hosts%

find /C /I "oldaddr.com" %hosts%

IF %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%>>%hosts%

find /C /I "oldaddr.com" %hosts%

IF %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%^172.16.0.10    oldaddr.com>>%hosts%

find /C /I "www.test1.com" %hosts%

IF %ERRORLEVEL% NEQ 0 ECHO %NEWLINE%^192.168.0.200    www.test1.com>>%hosts%

:END

exit

add_host.bat


[remove_host.bat]

set hosts=%windir%\system32\drivers\etc\hosts

attrib -r %hosts%

find /C /I "www.test1.com" %hosts%

IF %ERRORLEVEL% NEQ 0 goto END

set filename=%date%_%time:~0,2%%time:~3,2%%time:~6,2%

ren %temp%\hostback.txt hostback_%filename%.txt

findstr /I /V "www.test1.com" %hosts%>>%temp%\hostback.txt

ren %hosts% hosts_%filename%

type %temp%\hostback.txt>>%hosts%

:END

exit

remove_host.bat

hosts 원본


add_host.bat 실행 후 hosts 내용 및 etc 폴더 내용

  


remove_host.bat 실행 후 hosts 내용 및 etc 폴더 내용

 




참고사이트

http://www.snoopybox.co.kr/1404

http://mwultong.blogspot.com/2007/03/bat-time-to-file-name.html

https://stackoverflow.com/questions/20691060/echo-a-blank-empty-line-to-the-console-from-a-windows-batch-file

https://www.computing.net/answers/programming/batch-to-editdelete-an-ip-from-hosts-file/24358.html

https://stackoverflow.com/questions/3666740/windows-batch-how-to-add-host-entries



+ Recent posts