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

Показать сообщение отдельно

Аватара для BKPB

Старожил


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

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


Помогите ещё, если это не слишком сложно.
Можно как нибудь конвертировать .cmd в .vbs
Суть в том, что нужно с помощью .vbs снять защиту с hosts
и после внесения изменений с помощь фрагмента .vbs
снова восстановить защиту.
У меня есть для этого два .cmd
Снимает защиту:
Скрытый текст
@echo off
cd /d "%windir%\system32\drivers"
cd etc

Call :GrantAccess hosts
attrib -R hosts
goto :eof

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

Восстанавливает защиту:
Скрытый текст
@echo off
cd /d "%windir%\system32\drivers"
cd etc

Call :GrantAccess hosts
attrib +R hosts
goto :eof

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

а мне нужно в .vbs т.к изменения вносятся с помощью .vbs
Скрытый текст
Domains = Split("www.facebook.com facebook.com vkontakte.ru www.vkontakte.ru vk.com www.vk.com www.rutube.ru rutube.ru www.youtube.com youtube.com")

With CreateObject("Scripting.FileSystemObject")
Set F = .GetFile(.GetSpecialFolder(1) & "\drivers\etc\hosts")
End With : A = F.Attributes
All = F.OpenAsTextStream(1).ReadAll
If (A And 1) = 1 Then F.Attributes = A - 1 : T = 1

With New RegExp
.MultiLine = True : .IgnoreCase = True
For Each Dom In Domains
.Pattern = "^(0\.0\.0\.0|121\.0\.0\.1)[\t ]" & Replace(Dom, ".", "\.") & "\b"
If Not .Test(All) Then _
With F.OpenAsTextStream(8) .WriteLine "121.0.0.1 " & Dom : .Close : End With
Next
End With : If T Then F.Attributes = A

поэтому хочется чтобы это было одним файлом

Отправлено: 20:09, 14-10-2017 | #8