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

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

Новый участник


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

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


Цитата alpap:
потому как задачу я пока ... не понял ну ни грамма. »
Вот что я слепил из того что нашел в гугле, код требуемую функцию выполняет, но хотелось бы чтобы удаление указанных записей шло по принципу редактирования файла, а не замены его. Ещё размер окна нормальный сделать.
Код: Выделить весь код
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
Chcp 866 >nul
title text title
cd /d "%~dp0"
:begin
set host_file=%WINDIR%\system32\drivers\etc\hosts
set $host_file=hosts
:: Хосты, которые нужно удалить. Количество пробелов имеет значение.
set "url_name=127.0.0.1 test1"
set "url_name2=127.0.0.1 test2"
set "url_name3=127.0.0.1 test3"
echo Добавить запись domain.ru  - 1
echo Добавить запись domain.com - 2
echo Добавить запись domain.me  - 3
echo ______________________________
set /p ch=Веедите 1, 2 или 3: 
if "%ch%"=="1" (Call :m1& goto :ext)
if "%ch%"=="2" (Call :m2& goto :ext)
if "%ch%"=="3" (Call :m3& goto :ext)
echo Неправильный ввод
goto :begin
:ext
pause
goto :eof
:m1
for /f "tokens=1* delims=]" %%A in ('find /v /n "" ^<"%host_file%"') do (
set "line=%%B"
if "!line!" neq "%url_name%" if "!line!" neq "%url_name2%" if "!line!" neq "%url_name3%" >>%$host_file% echo.!line!
)
del /q %host_file%
move "%$host_file%" "%host_file%"
attrib -R -S -H -A %host_file%
echo 192.168.10.101 domain.ru >> %WINDIR%\system32\drivers\etc\hosts
echo Добавлена запись domain.ru
exit /B
:m2
for /f "tokens=1* delims=]" %%A in ('find /v /n "" ^<"%host_file%"') do (
set "line=%%B"
if "!line!" neq "%url_name%" if "!line!" neq "%url_name2%" >>%$host_file% echo.!line!
)
del /q %host_file%
move "%$host_file%" "%host_file%"
attrib -R -S -H -A %host_file%
echo 192.168.10.102 domain.com >> %WINDIR%\system32\drivers\etc\hosts
echo Добавлена запись domain.com
exit /B
:m3
for /f "tokens=1* delims=]" %%A in ('find /v /n "" ^<"%host_file%"') do (
set "line=%%B"
if "!line!" neq "%url_name%" if "!line!" neq "%url_name2%" >>%$host_file% echo.!line!
)
del /q %host_file%
move "%$host_file%" "%host_file%"
attrib -R -S -H -A %host_file%
echo 192.168.10.103 domain.me >> %WINDIR%\system32\drivers\etc\hosts
echo Добавлена запись domain.me
exit /B

Последний раз редактировалось xolod04, 08-03-2017 в 06:18.


Отправлено: 05:35, 08-03-2017 | #7