Я хотел бы получить значение из различных регулярных выражений, чтобы создать список файлов моих проверок работоспособности конечной точки.
У меня есть несколько сценариев PS, которые правильно анализируют и извлекают информацию из некоторых текстовых файлов, но яЯ хочу использовать значения, записанные в различных регулярных выражениях в моем скрипте, для создания новых строк.
Мой скрипт ниже читает из текстового файла # 1 и из выходного текстового файла # 2, все правильно.
PSСкрипт
(Get-Content 'c:\fake_path\test_stack.txt') `
| Select-String '(^\S{5}SERVER:)(\S*)(\S{5})','(^\S*n:\"\*:)(\d*)(:"\s$)','(^\"\/)(\S*)("\s$)' -AllMatches | Foreach-Object {$_.Matches} |
Foreach-Object {$_.Groups[2].Value} |
Out-File c:\fake_path\demo_stack.txt
1 InFile
*****SERVER:WIN001*****
SITE.NAME:"PRJ_ABC"
bindingInformation:"*:80:"
"/App001"
*****SERVER:WIN002*****
SITE.NAME:"PRJ_DEF"
bindingInformation:"*:81:"
"/App001"
SITE.NAME:"PRJ_HIJ"
bindingInformation:"*:82:"
"/App001" `
2 OutFile
WIN001
80
App001
WIN002
81
App001
82
App001`
Однако я надеюсь использовать значения, которые записаны в моих 3 различных регулярных выражениях нижев 3 различных переменных, скажем, $ a, $ b и $ c.
(Select-String '(^\S{5}SERVER:)(\S*)(\S{5})','(^\S*n:\"\*:)(\d*)(:"\s$)','(^\"\/)(\S*)("\s$)')
Моя попытка:
Foreach-Object 'http://' + 'a.{$_.Groups[2].Value}' + ':' + '$b.{$_.Groups[2].Value}' + '/' + '$c.{$_.Groups[2].Value}' + '/api/status'
Желаемыйвывод моей попытки (написано выше)
Новый файл, составленный так:
http://WIN001:80/App001/api/status
http://WIN002:81/App001/api/status
http://WIN002:81/App001/api/status
Итак, как вы можете видеть, я хотел записать регулярное выражение в переменных $ a $ b и $ c, а затем объединить строки, такие как http: // + $ a + ':' + $ b + ..... и т. д. для того, чтобы отформатировать его и создать URL.
Я считаю, что это возможно, просто не хватает фона.
Приветствую все советы, ура; -)