Показать полную графическую версию : Как проверить наличие текста в файле
Надо проверить наличие строки 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
15-09-2010, 23:40
@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
@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
Одной строчкой :)
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
Spooner, так нельзя:
- батник будет ждать закрытия voyager.exe;
- если voyager.exe завершится ошибкой (с установкой ErrorLevel), выполнится код после "||"
- последняя команда "voyager.exe" скорее всего вообще не выполнится, так как:
- команды проверяют ErrorLevel и (не)выполняются ВСЕ и последовательно
- каждая команда может изменить ERRORLEVEL и повлиять на дальнейшее поведение
- как вариант - использовать скобки
Unlocker.exe" "%USERPROFILE%\Cookies\index.dat" /S /D
del /s /q "%ALLUSERSPROFILE%\Program Options.bkp
del /s /q "%ALLUSERSPROFILE%\Program Options.dat
::/s -Удаление указанных файлов из всех подкаталогов. /g -молча
зачистить файл hosts от строк »
@findstr /viec:"antispamsniper.com" "%windir%\system32\drivers\etc\hosts" >"%~n0.tmp"
@copy /y "%~n0.tmp" "%windir%\system32\drivers\etc\hosts"
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.