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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBS/WSH/JS - [решено] Нужен .vbs скрипт для внесения изменений в hosts

Ответить
Настройки темы
VBS/WSH/JS - [решено] Нужен .vbs скрипт для внесения изменений в hosts

Аватара для BKPB

Старожил


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

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


Изменения
Автор: BKPB
Дата: 14-06-2017
Описание: Дополнение
Помогите написать .vbs скрипт для внесения изменений в hosts,
желательно чтобы при повторном запуске он проверял, если указанный в нём адрес уже существует,
то он бы не прописывал его второй раз, а либо переписывал либо игнорировал.

P.S: У меня есть .cmd, но он при каждом запуске добавляет новую строку (сколько раз запустишь столько и строк)

Отправлено: 18:34, 14-06-2017

 

Аватара для shisik

Ветеран


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

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


Цитата BKPB:
У меня есть .cmd, но он при каждом запуске добавляет новую строку (сколько раз запустишь столько и строк) »
Ну так может его стоит продемонстрировать?

Последний раз редактировалось shisik, 14-06-2017 в 20:23.


Отправлено: 19:19, 14-06-2017 | #2



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

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


Ветеран


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

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


Цитата shisik:
Ну так может его стоит продемонстрировать? »
Давайте я продемонстрирую :
Код: Выделить весь код
>>"%SystemRoot%\System32\drivers\etc\hosts" echo 127.0.0.1 XXX.XXX.com

Отправлено: 21:53, 14-06-2017 | #3


Аватара для BKPB

Старожил


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

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


Это для внесения изменений:

Скрытый текст
@echo off
cd /d "%windir%\system32\drivers"
cd etc

Call :GrantAccess hosts
attrib -R -S -H hosts
echo 127.0.0.1 idb.iobit.com>>hosts
attrib +R hosts
goto :eof

:GrantAccess
takeown /f "%~1"
echo y|cacls "%~1" /g %username%:f
exit /b


Это скрипт, чтобы .bat запускался без показа окна:

Скрытый текст
et WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "Change.hosts.bat" & Chr(34), 0
Set WshShell = Nothing

Последний раз редактировалось BKPB, 15-06-2017 в 11:39. Причина: Правка


Отправлено: 07:56, 15-06-2017 | #4


Аватара для BKPB

Старожил


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

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


Нашёл .bat который игнорирует адрес если такой уже внесён.

Скрытый текст
@Echo Off
setlocal EnableDelayedExpansion

set sHostFile=%SystemRoot%\System32\drivers\etc\hosts

:: добавление записи в hosts
call :Install 1111.com
:: пишем скрипт отката записи в hosts
call :cl 1111.com

exit /b


:Install
set sHost=%~1

if defined sHost (
for /f "usebackq eol=# tokens=1,2" %%i in ("%sHostFile%") do (
if /i "%%j"=="%sHost%" Set flag=1
)
If not defined flag (echo.127.0.0.1 %sHost%>>"%sHostFile%")
)
goto :eof

:cl
(
echo @Echo Off
echo setlocal enabledelayedexpansion
echo.
echo set sHostFile=%%SystemRoot%%\System32\drivers\etc\hosts
echo set sHost=%~1
echo.
echo for /f "tokens=1* delims=]" %%%%a in ^('find /v /n "" ^^^<"%%sHostFile%%"'^) do ^(
echo echo.%%%%b ^| ^>nul find /i "%%sHost%%" ^|^| ^(echo.%%%%b^>^>"%%SystemRoot%%\System32\drivers\etc\temp_host"^)
echo ^)
echo del /f /q "%%sHostFile%%"
echo ren "%%SystemRoot%%\System32\drivers\etc\temp_host" "hosts"
echo exit /b
)>cl_hosts.cmd
goto :eof


Но осталось два вопроса:

1. Как исправить этот .bat чтобы он только прописывал адрес, но не создавал файл отката внесённых изменений.
2. Можно ли на его основе создать скрипт

Последний раз редактировалось BKPB, 17-06-2017 в 15:44. Причина: Правка


Отправлено: 11:32, 15-06-2017 | #5


Ветеран


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

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


Цитата BKPB:
(поставил подчёркивания чтобы показать расстояние иначе при сохранении сообщения они принимают одинаковый вид) »
Достаточно использовать предназначенный для того тэг «code».

Отправлено: 13:22, 15-06-2017 | #6


Аватара для BKPB

Старожил


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

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


Помогите, хотя бы отредактировать .bat чтобы он только прописывал адрес, но не создавал файл отката внесённых изменений.

Отправлено: 15:46, 17-06-2017 | #7

y-- y-- вне форума

Старожил


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

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


BKPB,
Лень не есть хорошо - ну да ладно - код другой(твой мне не нравится):
Код: Выделить весь код
@ECHO OFF
REM Файл для обработки
SET "WORK_FILE=%SystemRoot%\System32\drivers\etc\hosts"
REM Список блокируемых доменов через запятую
SET "BLOCK_DOMAIN=domain1.com,domain2.ru,domain3.net"
FOR %%i IN (%BLOCK_DOMAIN%) DO CALL :WORK "%%~i"
GOTO :EOF
:WORK
FINDSTR /B /I /C:"127.0.0.1" "%WORK_FILE%"|FINDSTR /I /C:"%~1"||(
ECHO 127.0.0.1 %~1>>"%WORK_FILE%"
)
GOTO :EOF
Запуск от имени админа, права переопределять на hosts не стоит(если ты не кулхацкер)...

-------
Ты это - заходи если что...

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

Отправлено: 10:52, 18-06-2017 | #8


Аватара для BKPB

Старожил


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

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


y--, Спасибо огромное. И отдельное за совет.

Извините, как поставить благодарность не знаю.

Отправлено: 11:54, 18-06-2017 | #9


Ветеран


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

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


Цитата BKPB:
Извините, как поставить благодарность не знаю. »
Так:
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:59, 18-06-2017 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBS/WSH/JS - [решено] Нужен .vbs скрипт для внесения изменений в hosts

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - нужен vbs скрипт для отпраки файлов на mail exekill Скриптовые языки администрирования Windows 0 18-04-2012 16:28
VBS/WSH/JS - Нужен VBS скрипт для поиска файлов по маске и копирование его в определенное место exekill Скриптовые языки администрирования Windows 0 17-03-2012 10:46
CMD/BAT - Нужен батник для внесения данных в системный реестр Nun-Nun Скриптовые языки администрирования Windows 2 26-09-2010 17:35
Любой язык - [решено] Нужен скрипт cmd,vbs,PowerShell для проверки списка пользователей и их удаление из AD alex_frog Скриптовые языки администрирования Windows 6 22-07-2009 18:41




 
Переход