|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] замена ИП адреса в файле hosts |
|
CMD/BAT - [решено] замена ИП адреса в файле hosts
|
Новый участник Сообщения: 3 |
Профиль | Отправить PM | Цитировать Всем доброй поры суток.
Нужен .bat файл, который был заменял одни ИП-адреса на другие в файле hosts. У меня есть файл, который добавляет ИП в файл: ---- if exist %systemroot%\SysWOW64 ( set hosts=%systemroot%\SysWOW64\drivers\etc\hosts ) else ( set hosts=%systemroot%\System32\drivers\etc\hosts ) cacls %hosts% /E /G All:F cacls %hosts% /E /G 'б_:F attrib -s -r -h %hosts% (echo. echo # echo 95.125.144.25 www.site1.com echo 96.111.113.44 www.site2.com )>>%hosts% cacls %hosts% /E /R All cacls %hosts% /E /R 'б_ ipconfig /flushdns ---- а как мне теперь заменить эти ИПшники на другие? |
|
Отправлено: 19:12, 19-11-2010 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать shurc, как-то так (пример замены 95.125.144.25 -> 96.111.113.44):
@echo off set "hosts=%systemroot%\System32\drivers\etc\hosts" if exist %systemroot%\SysWOW64 set "hosts=%systemroot%\SysWOW64\drivers\etc\hosts" Call :CHIP 95.125.144.25 96.111.113.44 EXIT :CHIP SetLocal EnableDelayedExpansion (For /F "Tokens=1* Delims=]" %%a in ('^<"%hosts%" find /v /n ""') do ( Set "$b=%%b" If Defined $b Set "$b=!$b:%~1=%~2!" Echo.!$b! ))>"%TEMP%\%~n0.tmp" Copy /Y "%TEMP%\%~n0.tmp" "%hosts%" 2>nul&& DEL "%TEMP%\%~n0.tmp" EndLocal& GoTo :EOF |
Отправлено: 13:10, 21-11-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать у приведенного выше кода есть одна нехорошая особенность - например, кроме IP "95.125.144.25", он заменит также "195.125.144.25", "95.125.144.251"... это можно обойти, оставляя слева и справа от IP есть хотя бы один пробел, тогда строка запуска будет:
используя регулярные выражения можно учесть и эти случаи: @echo off set "hosts=%systemroot%\System32\drivers\etc\hosts" if exist %systemroot%\SysWOW64 set "hosts=%systemroot%\SysWOW64\drivers\etc\hosts" Call :CHIP 95.125.144.25 96.111.113.44 EXIT :CHIP SetLocal EnableDelayedExpansion Set "$1=%~1"& Set "$2=%~2" FindStr /VRC:"\<!$1:.=\.!\>" "%hosts%" >"%TEMP%\%~n0.tmp" (For /F "Delims=" %%a in ('FindStr /RC:"\<!$1:.=\.!\>" "%hosts%"') do ( Set "$a=%%a" Echo !$a:%~1=%~2! ))>>"%TEMP%\%~n0.tmp" Copy /Y "%TEMP%\%~n0.tmp" "%hosts%" 2>nul&& DEL "%TEMP%\%~n0.tmp" EndLocal& GoTo :EOF |
Отправлено: 15:32, 21-11-2010 | #3 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
DNS/DHCP - Настройка разрешения адреса через файл hosts в Windows XP | andrystepa | Сетевые технологии | 25 | 07-08-2012 21:42 | |
Разное - [решено] как сохранить изменения в файле hosts | sdn | Лечение систем от вредоносных программ | 5 | 01-06-2010 02:40 | |
CMD/BAT - [решено] замена строчки в файле | Bint | Скриптовые языки администрирования Windows | 4 | 15-10-2009 10:24 | |
[решено] Замена строчки в bat файле на несколько других | ZeroCrash | AutoIt | 4 | 02-07-2009 04:12 | |
Замена звуковой дорожки в VOB файле | Giorgievich | Видео и аудио: обработка и кодирование | 4 | 14-11-2005 07:32 |
|