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

Ответить
Аватара пользователя
mamont1

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

Сообщение mamont1 »

Надо проверить наличие строки 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)
Аватара пользователя
kiripanda

Re: CMD/BAT - Как проверить наличие текста в файле

Сообщение kiripanda »

Код:

Код: Выделить всё

@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
Аватара пользователя
amel27

Re: CMD/BAT - Как проверить наличие текста в файле

Сообщение amel27 »

Код:

Код: Выделить всё

@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
Аватара пользователя
Spooner

Re: CMD/BAT - Как проверить наличие текста в файле

Сообщение Spooner »

Одной строчкой Изображение




Цитата:



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
Аватара пользователя
amel27

Re: CMD/BAT - Как проверить наличие текста в файле

Сообщение amel27 »

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



- батник будет ждать закрытия voyager.exe;

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

- последняя команда "voyager.exe" скорее всего вообще не выполнится, так как:



- команды проверяют ErrorLevel и (не)выполняются ВСЕ и последовательно

- каждая команда может изменить ERRORLEVEL и повлиять на дальнейшее поведение

- как вариант - использовать скобки
Аватара пользователя
mamont1

Re: CMD/BAT - Как проверить наличие текста в файле

Сообщение mamont1 »

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

Re: CMD/BAT - Как проверить наличие текста в файле

Сообщение mamont1 »

Цитата mamont1:



зачистить файл hosts от строк
CMD/BAT - Как проверить наличие текста в файле






Код:

Код: Выделить всё

@findstr /viec:"antispamsniper.com" "%windir%\system32\drivers\etc\hosts" >"%~n0.tmp"
@copy /y "%~n0.tmp" "%windir%\system32\drivers\etc\hosts"
Ответить

Вернуться в «Скриптовые языки администрирования Windows»