CMD/BAT - Разбор файла .txt с помощью .bat

Ответить
Аватара пользователя
Armsinglom

CMD/BAT - Разбор файла .txt с помощью .bat

Сообщение Armsinglom »

Добрый день.

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

Re: CMD/BAT - Разбор файла .txt с помощью .bat

Сообщение Armsinglom »

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

Re: CMD/BAT - Разбор файла .txt с помощью .bat

Сообщение DJ Mogarych »

Powershell:



Код:

Код: Выделить всё

(gc D:\temp\hosts.txt) -match 'bc\d' -replace '\s.*'

"Батник" из него:



Код:

Код: Выделить всё

powershell -command "(gc D:\temp\hosts.txt) -match 'bc\d' -replace '\s.*'"
Аватара пользователя
Armsinglom

Re: CMD/BAT - Разбор файла .txt с помощью .bat

Сообщение Armsinglom »

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

Re: CMD/BAT - Разбор файла .txt с помощью .bat

Сообщение Armsinglom »

Подскажите еще, как можно организовать вот это процесс более правильно.

Вообщем суть такая:

Устанавливаю подключение с машиной



Код:

Код: Выделить всё

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.
Аватара пользователя
Iska

Re: CMD/BAT - Разбор файла .txt с помощью .bat

Сообщение Iska »

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

Re: CMD/BAT - Разбор файла .txt с помощью .bat

Сообщение Iska »

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

Re: CMD/BAT - Разбор файла .txt с помощью .bat

Сообщение Armsinglom »

Цитата Armsinglom:



и все схлопывать это в один файл.
CMD/BAT - Разбор файла .txt с помощью .bat




В какой момент «схлопывать»?
Аватара пользователя
DJ Mogarych

Re: CMD/BAT - Разбор файла .txt с помощью .bat

Сообщение DJ Mogarych »

Armsinglom, скачайте все файлы hosts со всех машин под разными именами, положите в каталог, затем просто



Код:

Код: Выделить всё

(gc U:\questionable\inventascript\test\*.txt) -match 'bc\d' -replace '\s.*'|sort -Unique|Out-File 'U:\questionable\inventascript\test\hosts-all.txt'
Аватара пользователя
Armsinglom

Re: CMD/BAT - Разбор файла .txt с помощью .bat

Сообщение Armsinglom »

Я имею ввиду как не плодить вот это:



Код:

Код: Выделить всё

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 из списка. И еще проблема в том что они скачиваются с одинаковым именем, и если в папке есть файл с таким же именем, то он его заменяет.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»