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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Получить значения из файла

Ответить
Настройки темы
PowerShell - [решено] Получить значения из файла

Аватара для ivan.vas

Новый участник


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

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


Изменения
Автор: ivan.vas
Дата: 12-10-2021
Добрый день.
Помогите с решением задачи по get-content хотя возможно будет уместно и Select-String.
Смысл в том, что есть файл логов, в нем полная мешанина, но есть два значения UserName и Password.
Хотелось что бы скрипт выдавал значения UserName и Password. В самом файле они выглядят так:
"UserName":"login"
"Password":"Pass"

Пробовал вот так:
Код: Выделить весь код
get-content "C:\1.log" |?{$_ -match "UserName"}|%{$Matches[0]}
но выдает только UserName, а не его значение.

Пробовал еще вот так:
Код: Выделить весь код
gc "123.log" |sls '(?<=userName=).+?(?=&RememberMe)' -all
Выдает конечно то что нужно, но объем полный как в примере.

Можно ли укоротить до вывода хотя бы:
userName=USERNAME&Password=Password

Пример лога:

*.*.*.* - [30/Sep/2000:00:00:38 +0300] "/login/" "POST /login/ HTTP/1.1" 302 325 "" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36" 0.026 <"userName=USERNAME&Password=Password&RememberMe=true&BackUrl=&g-recaptcha-response=" >"{"ErrorMessage":null,"CaptchaModel":{"ShowCaptcha":false,"ErrorMessage":null},"UserName":"USERNAME ","Password":"Password","RememberMe":true,"LoginRedirectUrl":null,"RedirectUrl":null,"BackUrl":"","C hangePasswordUrl":null,"RegistrationUrl":null}"

Отправлено: 09:12, 12-10-2021

 

Аватара для ivan.vas

Новый участник


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

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


Нашел похожую тему http://forum.oszone.net/thread-345862.html

Подскажите, а gc может вывод делать в файл?

Отправлено: 10:50, 12-10-2021 | #2



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

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


Аватара для Fors1k

Старожил


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

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


Код: Выделить весь код
cls
$pathLog = "D:\files\log.txt"
$pathOut = "D:\files\pwd.txt"

(gc $pathLog) -replace '.*name=(.*)&password=(.*?)&.*', "`$1`n`$2"|Out-File $pathOut

Последний раз редактировалось Fors1k, 14-10-2021 в 17:20.

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

Отправлено: 13:43, 12-10-2021 | #3


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

fascinating rhythm


Moderator


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

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


Чуть точнее:
Код: Выделить весь код
(gc "D:\temp\log.txt") -replace '.*UserName\":\"(.*?)\",\"Password\":\"(.*?)\".*',"`$1`n`$2" > "D:\temp\login-pass.txt"

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

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

Отправлено: 15:43, 12-10-2021 | #4


Аватара для ivan.vas

Новый участник


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

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


DJ Mogarych, подскажите, а можно брать начало строки?
Из примера, что б получилось:
*.*.*.* - UserName - Password

За *.*.*.* прячется ip адрес, я так понимаю что его можно забрать конструкцией:
Код: Выделить весь код
?{$_ -match "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"}|%{$Matches[0]}

Отправлено: 16:48, 12-10-2021 | #5


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

fascinating rhythm


Moderator


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

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


Код: Выделить весь код
(gc "D:\temp\log.txt") -replace '^(.*?) - .*UserName\":\"(.*?)\",\"Password\":\"(.*?)\".*',"`$1 - `$2 - `$3"  > "D:\temp\login-pass.txt"

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

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

Отправлено: 17:42, 12-10-2021 | #6


Аватара для ivan.vas

Новый участник


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

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


DJ Mogarych, подскажите, а можно ли сделать так, что б было условие ip и только UserName с Password? Вопрос связан с тем, что у меня есть выборки с ip без UserName и Password.

Отправлено: 09:52, 13-10-2021 | #7


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

fascinating rhythm


Moderator


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

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


Цитата ivan.vas:
что б было условие ip и только UserName с Password? »
Я не понял, объясните получше.

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


Отправлено: 10:42, 13-10-2021 | #8


Аватара для ivan.vas

Новый участник


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

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


Цитата DJ Mogarych:
Я не понял, объясните получше. »
Образно как то так:
Код: Выделить весь код
-match ip -and UserName -and Password
А в коде выходит что есть условие вида:
Код: Выделить весь код
-match ip -or UserName -and Password

Отправлено: 10:46, 13-10-2021 | #9


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

fascinating rhythm


Moderator


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

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


В коде сейчас вообще нет никаких условий, он просто выкидывает из строки всё лишнее. Т. е, вам нужно, чтобы присутствовали все 3 компонента? Или два (UserName -and Password)?

И приведите примеры строк, не соответствующих условиям.

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


Отправлено: 10:52, 13-10-2021 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Получить значения из файла

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
PowerShell - [решено] Поиск hex значения в файле, замена значения на заданное, сохранение файла 9119 Скриптовые языки администрирования Windows 24 28-01-2024 21:23
CMD/BAT - [решено] Копирование в переменную значения из текстового файла idlazarev_alex@vk Скриптовые языки администрирования Windows 1 05-04-2014 22:11
[решено] Присвоить значения переменной из текстового файла Cem AutoIt 9 05-03-2014 19:11
CMD/BAT - [решено] Ввод Вывод, присвоение значения переменной из файла Loki3D Скриптовые языки администрирования Windows 1 03-09-2013 15:34
VBS/WSH/JS - [решено] Stop цикл при обнаружении нужного значения из файла Afon Скриптовые языки администрирования Windows 4 26-01-2009 15:16




 
Переход