Имя пользователя:
Пароль:
 

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

Аватара для BKPB

Старожил


Сообщения: 176
Благодарности: 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