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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Разбор файла .txt с помощью .bat

Ответить
Настройки темы
CMD/BAT - Разбор файла .txt с помощью .bat

Пользователь


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

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


Изменения
Автор: Armsinglom
Дата: 30-01-2020
Вложения
Тип файла: txt hosts.txt
(555 байт, 3 просмотров)
Добрый день.
Помогите написать батник, который бы искал в файле hosts.txt строки где содержаться bc1 или BC1 или bc2 и т.д. и удалял бы все из этого файла кроме IP адресов . Т.е. что бы столовался в итоге чистый файл в котором будут только IP (в столбик). пример файла hosts я приложил.

Отправлено: 14:52, 30-01-2020

 

Пользователь


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

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


IP строк в которых не было bc1 или BC1 или bc2 удалять.

Отправлено: 14:55, 30-01-2020 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Powershell:
Код: Выделить весь код
(gc D:\temp\hosts.txt) -match 'bc\d' -replace '\s.*'
"Батник" из него:
Код: Выделить весь код
powershell -command "(gc D:\temp\hosts.txt) -match 'bc\d' -replace '\s.*'"

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:09, 30-01-2020 | #3


Пользователь


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

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


Блин как все просто оказалось.

Отправлено: 16:09, 30-01-2020 | #4


Пользователь


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

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


Подскажите еще, как можно организовать вот это процесс более правильно.
Вообщем суть такая:
Устанавливаю подключение с машиной
Код: Выделить весь код
WinSCP.exe scp://admin:123456@172.33.28.4:22 /hostkey="*" /console /script=U:\questionable\inventascript\test\scrpt.txt
скачиваю файл(содержание scrpt.txt):
Код: Выделить весь код
cd /etc
lcd U:\questionable\inventascript\test
get hosts
exit
Переименовываю hosts в hosts.txt
Код: Выделить весь код
rename hosts hosts.txt
Далее его обрабатываю:
Код: Выделить весь код
(gc U:\questionable\inventascript\test\hosts.txt) -match 'bc\d' -replace '\s.*'|sort -Unique|Out-File 'U:\questionable\inventascript\test\hosts2.txt'
На выходе получаю файлик hosts2.txt и он прекрасен.

В рамках одной машины и одного файла hosts все работает прекрасно, а как быть если машин 50 штук и в итоге я должен получить один файлик hosts.txt где будут собраны все отобранные IP.

Отправлено: 21:05, 30-01-2020 | #5


Ветеран


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

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


Armsinglom, проблема-то у Вас в чём? Или с чем?

Отправлено: 21:18, 30-01-2020 | #6


Пользователь


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

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


Заставить это работать с пулом IP, то есть поочередно скачивать файлы hosts с разных машин, и все схлопывать это в один файл.

Отправлено: 21:49, 30-01-2020 | #7


Ветеран


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

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


Цитата Armsinglom:
и все схлопывать это в один файл. »
В какой момент «схлопывать»?

Отправлено: 22:09, 30-01-2020 | #8


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Armsinglom, скачайте все файлы hosts со всех машин под разными именами, положите в каталог, затем просто
Код: Выделить весь код
(gc U:\questionable\inventascript\test\*.txt) -match 'bc\d' -replace '\s.*'|sort -Unique|Out-File 'U:\questionable\inventascript\test\hosts-all.txt'

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 22:34, 30-01-2020 | #9


Пользователь


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

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


Я имею ввиду как не плодить вот это:
Код: Выделить весь код
WinSCP.exe scp://admin:123456@172.33.28.4:22 /hostkey="*" /console /script=U:\questionable\inventascript\test\scrpt.txt
Код: Выделить весь код
WinSCP.exe scp://admin:123456@172.33.28.5:22 /hostkey="*" /console /script=U:\questionable\inventascript\test\scrpt.txt
Код: Выделить весь код
WinSCP.exe scp://admin:123456@172.33.28.6:22 /hostkey="*" /console /script=U:\questionable\inventascript\test\scrpt.txt
А как то подставлять IP из списка. И еще проблема в том что они скачиваются с одинаковым именем, и если в папке есть файл с таким же именем, то он его заменяет.

Отправлено: 23:27, 30-01-2020 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Разбор файла .txt с помощью .bat

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как записать в txt файл большой кусок текста с помощью bat Андрей_Угаров@vk Скриптовые языки администрирования Windows 17 15-12-2022 18:47
CMD/BAT - Изменить txt файл с помощью .bat drkrol Скриптовые языки администрирования Windows 20 07-12-2017 09:15
CMD/BAT - [решено] Создание bat файла c помощью другого bat файла GODolubOFF Скриптовые языки администрирования Windows 11 03-01-2016 20:30
CMD/BAT - [решено] Созд.*.txt по имени файла, с перемещением *.txt и файла в папку с именем файла. OSArev Скриптовые языки администрирования Windows 2 30-01-2011 11:58
CMD/BAT - [решено] Замена файла boot.ini с помощью bat файла Chekis9100a Скриптовые языки администрирования Windows 3 24-11-2010 08:17




 
Переход