Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Как проверить наличие текста в файле (http://forum.oszone.net/showthread.php?t=185556)

mamont1 15-09-2010 21:51 1496206

Как проверить наличие текста в файле
 
Надо проверить наличие строки 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 1496285

Код:

@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 16-09-2010 07:01 1496409

Код:

@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 16-09-2010 11:19 1496582

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

Цитата:

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 16-09-2010 11:35 1496598

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

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

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

mamont1 16-09-2010 12:28 1496642

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

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

amel27 16-09-2010 16:32 1496847

Цитата:

Цитата mamont1
зачистить файл hosts от строк »

Код:

@findstr /viec:"antispamsniper.com" "%windir%\system32\drivers\etc\hosts" >"%~n0.tmp"
@copy /y "%~n0.tmp" "%windir%\system32\drivers\etc\hosts"



Время: 14:38.

Время: 14:38.
© OSzone.net 2001-