Elroir
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору chp666 Цитата: Но добавляется только первый адрес, что нужно поправить в этом батнике? | Перед каждым вызовом addhost.cmd, надо добавить команды call: Код: @echo off attrib -r %windir%\system32\drivers\etc\hosts call addhost.cmd 192.168.0.1 l2testauthd.lineage2.com call addhost.cmd 192.168.0.1 l2authd.lineage2.com call addhost.cmd 192.168.0.1 nprotect.lineage2.com | Цитата: Ну и на последок, что нужно поменять в addhost.cmd чтоб он не добавлял, а удалял заданные адреса. | Поменять что-либо для этого будет затруднительно. Нужен другой батник: Код: @echo off if "%1"=="" goto :EOF attrib -r %windir%\system32\drivers\etc\hosts del /q %windir%\system32\drivers\etc\newhosts 2>nul del /q %windir%\system32\drivers\etc\hosts.bak 2>nul copy %windir%\system32\drivers\etc\hosts %windir%\system32\drivers\etc\hosts.bak if "%2"=="" goto delbyip for /f "tokens=1,2*" %%a in (%windir%\system32\drivers\etc\hosts) do ( if not "%%a"=="%1" (echo %%a %%b %%c>>%windir%\system32\drivers\etc\newhosts) else ( if not "%%b"=="%2" (echo %%a %%b %%c>>%windir%\system32\drivers\etc\newhosts))) goto work :delbyip for /f "tokens=1,2*" %%a in (%windir%\system32\drivers\etc\hosts) do ( if not "%%a"=="%1" echo %%a %%b %%c>>%windir%\system32\drivers\etc\newhosts) :work del /q %windir%\system32\drivers\etc\hosts 2>nul ren %windir%\system32\drivers\etc\newhosts hosts | Его надо сохранить под именем delhost.cmd. Если ему передается один параметр - IP адрес, то сотрутся все строчки с этим адресом. Если же передается адрес и имя хоста - сотрется только строчка, содержащая эти значения. Пример: 1. Нужно удалить все строчки с адресом 192.168.0.1 Код: 2. Нужно удалить все строчку с адресом 192.168.0.1 и именем l2authd.lineage2.com Код: delhost 192.168.0.1 l2authd.lineage2.com | Опять же - если запускать из другого батника, нужно воспользоваться командой call. Так как из командной строки нельзя редактировать файлы - в процессе работы delhost.cmd, создается новый файл newhosts с нужными строчками, удаляется оригинальный файл hosts и после этого newhosts переименовывается в hosts. Поэтому на всякий случай создается копия файла hosts, с именем hosts.bak. |