|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Добавление и удаление записей в host файл с помощью bat |
|
CMD/BAT - Добавление и удаление записей в host файл с помощью bat
|
Новый участник Сообщения: 4 |
Доброго времени суток.
Помогите написать bat файл который будет вносить в host определенную запись в зависимости от ответа, всего 3 варианта выбора, при выборе одного из вариантов сначала проверяется host файл на наличие других трех записей, в случае обнаружение стирает их, а затем вносит выбранную. |
|
Отправлено: 22:22, 06-03-2017 |
Забанен Сообщения: 795
|
Цитата xolod04:
то что ты хочешь - тянет на целую программу на ЯВУ, КМК. и 100пудово, такая уже есть. |
|
Отправлено: 02:21, 07-03-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать допустим в файле запись:
заяц стоп сигнал нам предлагается отвлеченный выбор чего-то (выберите из цифр: 1 2 3) или выбор из этих же строк, заданных в переменных? при выборе одного из вариантов должен пройти цикл перебора на совпадение всех заданных переменных со строками файла или при любом совпадении выбора с первого раза удалять содержимое? Или вообще не важно, выбрали 1 - есть любая запись, удалить все, записать свое? я могу еще несколько вариантов развития событий накреативить, пролейте свет! |
Отправлено: 02:34, 07-03-2017 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 03:14, 07-03-2017 | #4 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Цитата alpap:
Цитата alpap:
|
|||
Отправлено: 11:03, 07-03-2017 | #5 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать xolod04,
начнем с этого: @echo off echo Eсли вам нужен такой то хост введите 1 echo Eсли вам нужен не такой то хост введите 2 echo Eсли вам нужен какой-то не такой хост введите 3 set /p v= if %v%==1 call :x1 if %v%==2 call :x2 if %v%==3 call :x3 pause& exit :x1 :: командой echo:>"hosts1.txt" очищаем файл (удаляем все из него) <"hosts1.txt" find /i "Заяц" && (echo Есть такая информация& echo:>"hosts1.txt") exit /b :x2 <"hosts2.txt" find /i "Заяц" && (echo Есть такая информация) exit /b :x3 <"hosts3.txt" find /i "Заяц" && (echo Есть такая информация) exit /b |
Отправлено: 02:56, 08-03-2017 | #6 |
Новый участник Сообщения: 4
|
Профиль | Отправить 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 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата xolod04:
батники не умеют работать с окнами, можно в коде дать комаду открыть: explorer "файл" и вручную редактировать и сохранять. |
|
Отправлено: 15:54, 08-03-2017 | #8 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Цитата alpap:
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" 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% Теперь при повторном запуске батника скрипт не может убрать записи из за атрибута файла. Цитата Iska:
|
||
Отправлено: 17:57, 08-03-2017 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата xolod04:
|
|
Отправлено: 19:17, 08-03-2017 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Изменить txt файл с помощью .bat | drkrol | Скриптовые языки администрирования Windows | 20 | 07-12-2017 09:15 | |
CMD/BAT - Как скопировать с помощью BAT файл(s) в локальных дисках | Ачилов | Скриптовые языки администрирования Windows | 4 | 03-02-2017 20:45 | |
CMD/BAT - Удаление фалов с помощью BAT | A.N.D.R.E.I.S.M | Скриптовые языки администрирования Windows | 0 | 01-04-2016 17:19 | |
CMD/BAT - [решено] Запись в файл hosts с помощью bat-файла | SibAgent | Скриптовые языки администрирования Windows | 20 | 29-07-2015 22:12 | |
CMD/BAT - [решено] BAT добавление пути в файл конфигурации | PowerZ | Скриптовые языки администрирования Windows | 6 | 26-03-2014 14:27 |
|