![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Проверка файла host |
|
CMD/BAT - Проверка файла host
|
Старожил Сообщения: 345 |
Уважаемые форумчане, подсобите, пожалуйста,
Я хочу, чтобы при запуске CMD-файла проверялся файл host на наличие строчек: 127.0.0.1 rad.msn.com 127.0.0.1 apps.skype.com 127.0.0.1 download.skype.com 127.0.0.1 g.msn.com 127.0.0.1 cdn.eyewonder.com Если строчки присутствуют, то CMD-файл исполняется дальше, если строчек нет, они добавляются и CMD-файл исполняется дальше. Подскажите, как это реализовать??? |
|
Отправлено: 11:01, 24-04-2015 |
Старожил Сообщения: 345
|
Профиль | Отправить PM | Цитировать Для полной замены host я использую скрипт:
@echo off @echo # Copyright (c) 1993-2009 Microsoft Corp. > %windir%\system32\drivers\etc\hosts @echo # >> %windir%\system32\drivers\etc\hosts @echo # This is a sample HOSTS file used by Microsoft TCP/IP for Windows. >> %windir%\system32\drivers\etc\hosts @echo # >> %windir%\system32\drivers\etc\hosts @echo # This file contains the mappings of IP addresses to host names. Each >> %windir%\system32\drivers\etc\hosts @echo # entry should be kept on an individual line. The IP address should >> %windir%\system32\drivers\etc\hosts @echo # be placed in the first column followed by the corresponding host name. >> %windir%\system32\drivers\etc\hosts @echo # The IP address and the host name should be separated by at least one >> %windir%\system32\drivers\etc\hosts @echo # space. >> %windir%\system32\drivers\etc\hosts @echo # >> %windir%\system32\drivers\etc\hosts @echo # Additionally, comments (such as these) may be inserted on individual >> %windir%\system32\drivers\etc\hosts @echo # lines or following the machine name denoted by a '#' symbol. >> %windir%\system32\drivers\etc\hosts @echo # >> %windir%\system32\drivers\etc\hosts @echo # For example: >> %windir%\system32\drivers\etc\hosts @echo # >> %windir%\system32\drivers\etc\hosts @echo # 102.54.94.97 rhino.acme.com # source server >> %windir%\system32\drivers\etc\hosts @echo # 38.25.63.10 x.acme.com # x client host >> %windir%\system32\drivers\etc\hosts @echo. >> %windir%\system32\drivers\etc\hosts @echo # localhost name resolution is handled within DNS itself. >> %windir%\system32\drivers\etc\hosts @echo # 127.0.0.1 localhost >> %windir%\system32\drivers\etc\hosts @echo # ::1 localhost >> %windir%\system32\drivers\etc\hosts @echo. >> %windir%\system32\drivers\etc\hosts @echo 127.0.0.1 download.skype.com >> %windir%\system32\drivers\etc\hosts ipconfig /flushdns pause |
Отправлено: 11:06, 24-04-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать @echo off setlocal enableextensions enabledelayedexpansion set sSourceFile=C:\Песочница\069\list.txt set sDestFile=%SystemRoot%\system32\drivers\etc\hosts if exist "%sSourceFile%" ( if exist "%sDestFile%" ( for /f "usebackq delims=" %%i in ("%sSourceFile%") do ( type "%sDestFile%" | >nul 2>&1 find.exe /i "%%~i" || ( echo Add string [%%~i]. >>"%sDestFile%" echo %%~i ) ) ) else ( echo Can't find destination file [%sDestFile%]. exit /b 2 ) ) else ( echo Can't find source file [%sSourceFile%]. exit /b 1 ) endlocal exit /b 0 |
Отправлено: 13:04, 24-04-2015 | #3 |
Старожил Сообщения: 345
|
Профиль | Отправить PM | Цитировать А как сделать без дополнительного файла list.txt???
Чтобы строчки были прописаны в cmd. |
Отправлено: 13:22, 24-04-2015 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Sisin, по-хорошему, конечно, вместо «find.exe» надо пользовать «findstr.exe» с указанием в маске начала и конца строки, наподобие:
а то попадётся в исходном файле что-нибудь этакое: — и будет ошибочно определено, что вторая строка уже есть в целевом файле (по совпадению подстроки). Цитата Sisin:
|
||
Отправлено: 13:27, 24-04-2015 | #5 |
Старожил Сообщения: 345
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 13:35, 24-04-2015 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Sisin:
— в том же каталоге, что и пакетный файл. |
|
Отправлено: 13:51, 24-04-2015 | #7 |
Старожил Сообщения: 345
|
Профиль | Отправить PM | Цитировать У меня после запуска дублируются строчки.
т.е. 127.0.0.1 download.skype.com уже была, а после запуска таких строчек стало две. Подумал, может пробелы в конце мешают, но нет не из-за них... |
Последний раз редактировалось Sisin, 24-04-2015 в 14:05. Отправлено: 13:58, 24-04-2015 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Sisin:
|
|
Отправлено: 14:10, 24-04-2015 | #9 |
Старожил Сообщения: 345
|
Профиль | Отправить PM | Цитировать Я разобрался, они были в разных кодировках.
Спасибо, Iska. |
Отправлено: 14:18, 24-04-2015 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - CMD проверка создания файла за (сегодня вчера) с созданием флагового файла | yamixon | Скриптовые языки администрирования Windows | 5 | 17-03-2015 08:40 | |
[решено] svchost.exe Два файла host в папке ect | cir1us | Лечение систем от вредоносных программ | 17 | 16-10-2011 14:05 | |
CMD/BAT - [решено] Проверка размера файла | 4zz | Скриптовые языки администрирования Windows | 4 | 18-08-2011 17:38 | |
VBS/WSH/JS - Проверка существования файла | admin-nsk | Скриптовые языки администрирования Windows | 3 | 13-10-2010 12:25 | |
CMD/BAT - Скачивание файла и проверка на отличия от файла на сервере. | maslovt | Скриптовые языки администрирования Windows | 2 | 08-05-2010 19:54 |
|