Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Как проверить наличие текста в файле

Ответить
Настройки темы
CMD/BAT - Как проверить наличие текста в файле

Старожил


Сообщения: 413
Благодарности: 161

Профиль | Отправить PM | Цитировать


Надо проверить наличие строки 127.0.0.1 antispamsniper.com в файле %windir%\system32\drivers\etc\hosts

если есть - запустить программу ( voyager.exe )

если нет - добавить:
127.0.0.1 antispamsniper.com
127.0.0.1 www.antispamsniper.com
запустить программу ( voyager.exe )
читать дальше »

здесь проверяется/добавляется/выходит, а как запустить voyager.exe ?
Код: Выделить весь код
@type %windir%\system32\drivers\etc\hosts | find /i "antispamsniper.com" | find "127.0.0.1" >nul && exit 1
>> %windir%\system32\drivers\etc\hosts (echo 127.0.0.1 antispamsniper.com)
>> %windir%\system32\drivers\etc\hosts (echo 127.0.0.1 www.antispamsniper.com)

Отправлено: 21:51, 15-09-2010

 

Старожил


Сообщения: 352
Благодарности: 119

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@echo off
type %windir%\system32\drivers\etc\hosts | find /i "antispamsniper.com" | find "127.0.0.1" >nul && goto :run
>> %windir%\system32\drivers\etc\hosts (echo 127.0.0.1 antispamsniper.com)
>> %windir%\system32\drivers\etc\hosts (echo 127.0.0.1 www.antispamsniper.com)
:run
voyager.exe
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:40, 15-09-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@set $H=%windir%\system32\drivers\etc\hosts
@set $1=127.0.0.1 antispamsniper.com
@set $2=127.0.0.1 www.antispamsniper.com

@find /i /c "%$1%" "%$H%"||>>"%$H%" echo %$1%
@find /i /c "%$2%" "%$H%"||>>"%$H%" echo %$2%

voyager.exe
Код: Выделить весь код
@echo off

set HS=%windir%\system32\drivers\etc\hosts
set $1=127.0.0.1 antispamsniper.com
set $2=127.0.0.1 www.antispamsniper.com

for /f "tokens=1* delims==" %%i in ('set $') do find /i /c "%%j" "%HS%"||>>"%HS%" echo %%j

voyager.exe
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:01, 16-09-2010 | #3


Пользователь


Сообщения: 96
Благодарности: 12

Профиль | Отправить PM | Цитировать


Одной строчкой

Цитата:
find "127.0.0.1" %windir%\system32\drivers\etc\hosts | find "antispamsniper.com">nul && voyager.exe || echo 127.0.0.1 antispamsniper.com>>%windir%\system 32\drivers\etc\hosts && voyager.exe
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:19, 16-09-2010 | #4


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Spooner, так нельзя:

- батник будет ждать закрытия voyager.exe;
- если voyager.exe завершится ошибкой (с установкой ErrorLevel), выполнится код после "||"
- последняя команда "voyager.exe" скорее всего вообще не выполнится, так как:

- команды проверяют ErrorLevel и (не)выполняются ВСЕ и последовательно
- каждая команда может изменить ERRORLEVEL и повлиять на дальнейшее поведение
- как вариант - использовать скобки
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:35, 16-09-2010 | #5


Старожил


Сообщения: 413
Благодарности: 161

Профиль | Отправить PM | Цитировать


Unlocker.exe" "%USERPROFILE%\Cookies\index.dat" /S /D
del /s /q "%ALLUSERSPROFILE%\Program Options.bkp
del /s /q "%ALLUSERSPROFILE%\Program Options.dat

::/s -Удаление указанных файлов из всех подкаталогов. /g -молча

Последний раз редактировалось mamont1, 15-10-2012 в 15:05.


Отправлено: 12:28, 16-09-2010 | #6


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата mamont1:
зачистить файл hosts от строк »
Код: Выделить весь код
@findstr /viec:"antispamsniper.com" "%windir%\system32\drivers\etc\hosts" >"%~n0.tmp"
@copy /y "%~n0.tmp" "%windir%\system32\drivers\etc\hosts"
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:32, 16-09-2010 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Как проверить наличие текста в файле

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как проверить в определённой директории наличие файлов (не подкаталогов!) ? SANIOK_AV Скриптовые языки администрирования Windows 26 21-06-2011 12:25
[решено] Проверить наличие процесса по маске cleric1985_n AutoIt 1 13-03-2010 16:58
Как проверить наличие процесса? Не флужу AutoIt 0 13-01-2010 07:31
CMD/BAT - Как из бат-файла проверить наличие файла по ссылке, не скачивая файл ? mitiya Скриптовые языки администрирования Windows 2 27-06-2008 20:50
Как проверить JavaScript'ом наличие Flash??? Krendebobel Вебмастеру 10 28-06-2005 16:17




 
Переход