С Новым годом! Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
3 / 3 / 0
Регистрация: 07.02.2020
Сообщений: 31

Замена строки в файле host

02.09.2024, 09:53. Показов 789. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые!
Есть задача заменить в файле host строку типа 192.168.1.1 на другой ip, нужен батник скрипт... что бы руками не править каждый host в компании!
AD нету.. компания не большая 30 компов... хочу пройти батником сделать у всех.
Или удалить строку вообще... как добавить новую батником я знаю.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.09.2024, 09:53
Ответы с готовыми решениями:

Замена строки в файле
Приветствую. Знаю тема поднималась уже много раз. Но к сожалению подходящего мне решения не удалось найти... Есть .ini -шник в котором...

Замена строки в файле
Можно ли заменить строку по номеру? Какие вообще возможны замены? Есть много файлов, в каждой нужно поменять имя пользователя. Причем...

Замена строки в файле
По аналогии из тем создал Батник с таким содержимым powershell "$f=(Get-Content 01_01.tab);$f='CoordSys NonEarth Units "m"';$f...

7
bat-пропагандист
 Аватар для nekit270
981 / 183 / 76
Регистрация: 07.12.2022
Сообщений: 454
Записей в блоге: 12
02.09.2024, 23:07
Лучший ответ Сообщение было отмечено ATVStudio как решение

Решение

Изменить IP:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@echo off
 
set "TargetIP=192.168.1.1"
set "ReplaceTo=1.2.3.4"
 
copy nul "%TEMP%\hosts.tmp" >nul
 
for /f "usebackq tokens=*" %%i in ("%WINDIR%\System32\drivers\etc\hosts") do (
    echo.%%i| findstr "%TargetIP%" >nul 2>nul && (
        call set "s=%%i"
        call set "s=%%s:%TargetIP%=%ReplaceTo%%%"
        call echo.%%s%%>> "%TEMP%\hosts.tmp"
    ) || (
        echo.%%i>> "%TEMP%\hosts.tmp"
    )
)
 
move /y "%TEMP%\hosts.tmp" "%WINDIR%\System32\drivers\etc\hosts" >nul 2>nul
Удалить строку:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
 
set "TargetIP=192.168.1.1"
 
copy nul "%TEMP%\hosts.tmp" >nul
 
for /f "usebackq tokens=*" %%i in ("%WINDIR%\System32\drivers\etc\hosts") do (
    echo.%%i| findstr "%TargetIP%" >nul 2>nul || (
        echo.%%i>> "%TEMP%\hosts.tmp"
    )
)
 
move /y "%TEMP%\hosts.tmp" "%WINDIR%\System32\drivers\etc\hosts" >nul 2>nul
2
3 / 3 / 0
Регистрация: 07.02.2020
Сообщений: 31
03.09.2024, 04:48  [ТС]
Цитата Сообщение от nekit270 Посмотреть сообщение
Windows Batch file
1
2
3
4
5
6
7
8
9
@echo off
set "TargetIP=192.168.1.1"
copy nul "%TEMP%\hosts.tmp" >nul
for /f "usebackq tokens=*" %%i in ("%WINDIR%\System32\drivers\etc\hosts") do (
    echo.%%i| findstr "%TargetIP%" >nul 2>nul || (
        echo.%%i>> "%TEMP%\hosts.tmp"
    )
)
move /y "%TEMP%\hosts.tmp" "%WINDIR%\System32\drivers\etc\hosts" >nul 2>nul
Спасибо Уважаемый!
Попробую... на удаление строки сам тут накопал сделал...такой скрипт и он работает!

Windows Batch file
1
2
3
@echo off
type C:\Windows\System32\drivers\etc\hosts | find /v /i "192.168.1.14" > file.temp
echo.Y | move file.temp C:\Windows\System32\drivers\etc\hosts
Добавлено через 18 минут
Цитата Сообщение от nekit270 Посмотреть сообщение
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off
set "TargetIP=192.168.1.1"
set "ReplaceTo=1.2.3.4"
copy nul "%TEMP%\hosts.tmp" >nul
for /f "usebackq tokens=*" %%i in ("%WINDIR%\System32\drivers\etc\hosts") do (
    echo.%%i| findstr "%TargetIP%" >nul 2>nul && (
        call set "s=%%i"
        call set "s=%%s:%TargetIP%=%ReplaceTo%%%"
        call echo.%%s%%>> "%TEMP%\hosts.tmp"
    ) || (
        echo.%%i>> "%TEMP%\hosts.tmp"
    )
)
move /y "%TEMP%\hosts.tmp" "%WINDIR%\System32\drivers\etc\hosts" >nul 2>nul
Работает! Спасибо!
1
 Аватар для Angry Old Man
2998 / 740 / 311
Регистрация: 26.03.2022
Сообщений: 1,382
Записей в блоге: 1
03.09.2024, 14:00
Цитата Сообщение от ATVStudio Посмотреть сообщение
на удаление строки сам тут накопал сделал...такой скрипт и он работает!
Ох и сомневаюсь. Для начала, если исходный файл с атрибутами SHR, то Move не пройдет
Если указали 192.168.1.1 то удалит и 192.168.1.12 и 192.168.1.134 итд, указали 192.168.1.14, соответственно убьем и 192.168.1.149 итд
Вот вариант:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
@Echo Off &Cls
    Set "FileIn=Z:\Windows\System32\drivers\etc\hosts"
    Set "DelIp=192.168.1.1"
 
    Set "R=%DelIp:.=\.%"
 
    >"%FileIn%.tmp" (For /F "usebackq delims=" %%s In (`2^>nul type "%FileIn%"`) Do (
        Echo %%s|Find /V "%DelIp%"
        Echo %%s|FindStr /R /C:".*%R%[0-9].*"
    )) 
    Echo Y|xcopy /R "%FileIn%.tmp" "%FileIn%"&&Del "%FileIn%.tmp"
    Attrib "%FileIn%" +s +h +r
Exit /B 0
Цитата Сообщение от ATVStudio Посмотреть сообщение
как добавить новую батником я знаю
Я тестировал скрипт на файле на диске Z:, соответственно исправьте на то, что нужно.
1
3 / 3 / 0
Регистрация: 07.02.2020
Сообщений: 31
03.09.2024, 14:38  [ТС]
Цитата Сообщение от Angry Old Man Посмотреть сообщение
Ох и сомневаюсь. Для начала, если исходный файл с атрибутами SHR, то Move не пройдет
Если указали 192.168.1.1 то удалит и 192.168.1.12 и 192.168.1.134 итд, указали 192.168.1.14, соответственно убьем и 192.168.1.149 итд
Может быть и так... спасибо за вариант скрипта.... но мою задачу мой скрипт выполнил в полном объёме.
Ваш в копилочку запишу))!

Добавлено через 8 минут
Цитата Сообщение от Angry Old Man Посмотреть сообщение
Если указали 192.168.1.1 то удалит и 192.168.1.12 и 192.168.1.134 итд, указали 192.168.1.14, соответственно убьем и 192.168.1.149 итд
К стате да протестировал удаляет 192.168.1.14 192.168.1.149 )))....
Но поскольку мне нужно было просто удалить или заменить 1 ip то всё норм......
С заменой приведённый выше скрипт на ура все сделал....
0
 Аватар для Angry Old Man
2998 / 740 / 311
Регистрация: 26.03.2022
Сообщений: 1,382
Записей в блоге: 1
03.09.2024, 15:10
ATVStudio, А если заменить
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Echo Off &Cls
    Set "FileIn=Z:\Windows\System32\drivers\etc\hosts"
    Set "DelIp=192.168.1.1"
    Set "RepIp=192.168.1.199"
 
    Set "R=%DelIp:.=\.%"
 
    >"%FileIn%.tmp" (For /F "usebackq delims=" %%s In (`2^>nul type "%FileIn%"`) Do (
        Set "Str=%%s"
        Call Set "Str=%%Str:%DelIp%=%RepIp%%%"
        Echo %%s|>nul FindStr /R /C:".*%R%[0-9].*"&&Set "Str=%%s"
        (Call Echo %%Str%%)
    )) 
    Echo Y|xcopy /R "%FileIn%.tmp" "%FileIn%"&&Del "%FileIn%.tmp"
    Attrib "%FileIn%" +s +h +r
Exit /B 0
1
bat-пропагандист
 Аватар для nekit270
981 / 183 / 76
Регистрация: 07.12.2022
Сообщений: 454
Записей в блоге: 12
03.09.2024, 16:08
Цитата Сообщение от Angry Old Man Посмотреть сообщение
если исходный файл с атрибутами SHR, то Move не пройдет
должен ли hosts быть с SHR? специально проверил на чистой винде - их нет.
0
03.09.2024, 18:44

Не по теме:

nekit270, а у меня есть shr, возможно я сам это сделал по соображениям безопасности

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.09.2024, 18:44
Помогаю со студенческими работами здесь

Замена строки в host и изменение подсети
Есть 100+ компов, нужен батник, задача такая: 1. Есть много чего нужного в хосте, нужно определенную строку изменить на другую. ...

Замена строк в одном файле на строки из другого файла (строки задаются их порядковыми номерами)
Есть два txt файла (1.txt; 2.txt): необходимо заменять целые строки (по номеру строки) в одном файле на целые строки (также по номеру) из...

Замена строки в файле
Помогите, пожалуйста, с алгоритмом или кодом решения следующей проблемы (на С или С++): есть обычный текстовый файл, в нем содержатся...

Замена строки в файле
Имеется текстовый файл, в него заносится логин и пароль типа запись, так вот к примеру пользователь решил поменять пароль, как удалить...

Замена строки в файле
Привет всем, хочу реализовать смену пароля в программе, для этого создаю текстовый файл с паролем (пусть будет 4550), открываю файл и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru