Цитата Skylear:
потому что внутри сессии »
|
У меня было такое смутное предположение — и на всякий случай уточнил.
Пока только алгоритм cmd-файла, приближенный к боевому:
1. IP вычленяется достаточно легко: для любой языковой версии операционки команда
Код:

ping yandex.ru | find "[" > %TEMP%\IP_line.txt
создаёт во временном каталоге пользователя файл IP_line.txt с единственной строкой, где нужный IP (в примере — Яндекса) заключён в квадратные скобки.
2. Вычленяем из скобок этот IP и создаём файл (например, %TEMP%\srv_IP.txt) со строкой
Код:

<Вычлененный адрес> srv
Файл %TEMP%\IP_line.txt оставлем для последующих проверок на тему "не изменился ли IP".
3. Проверяем файл
hosts на наличие строки с окончанием "<пробел> srv" и при её наличии удаляем эту строку. Проверяем, что последняя строка файла hosts пустая
(как это должно быть; она может быть непустой в случае если, например, файл правили руками и не нажали Enter после ввода последней строки); если нет — создаём в конце пустую строку (нужно для следующего шага). Сохраняем файл (при этом
нужны права Администратора).
4. Дописываем (опять же
с правами администратора) файл srv_IP.txt к файлу hosts:
Код:

copy /b %windir%\System32\drivers\etc\hosts+%TEMP%\srv_IP.txt %windir%\System32\drivers\etc\hosts
4.1 По правилам хорошего тона (операция необязательная) стандартно удаляем файл %TEMP%\srv_IP.txt.
5. На всякий случай очищаем кэш DNS:
Код:

ipconfig /flushdns
и начинаем работать.
Итого — шаги 1, 4 и 5 уже готовы в кодах практически полностью, осталось детализировать шаги 2 и 3.
Но тут надо покумекать (хотя для тех, кто часто работает с батниками, это труда не составило бы).