Мне нужно извлечь значение между двумя квадратными скобками из конкретной строки в выводе команды.Вот выходные данные команды.
C:\Informatica\PowerCenter\isp\bin> .\infacmd.bat ping -dn Infadomain -nn Node01
[INFACMD_10052] Node [Node01] Domain [Infadomain] Host:Port [infadev:6005] was successfully pinged.
[INFACMD_10470] Kerberos authentication is [disabled] and secure communication is [disabled] in the Informatica domain [Infadomain].
Command ran successfully.
Из вышеприведенного вывода мне нужно извлечь значение 'infadev' из приведенного выше результата команды.Я пытался использовать функции регулярного выражения для извлечения значения, но каким-то образом код не работает.
$cmd = Invoke-Command -ScriptBlock {& cmd.exe /c "infacmd.bat ping" -dn "Infadomain" -nn "Node01"} | Where-Object {$_ -ne 'Command ran successfully.'}
$result = $cmd |(\[(?:\[??[^\[]*?\]))
write-host $result
В строке: 2 символа: 17 + $ result = $ cmd | ([(?: [?? [^ [] *?])) + ~~~~~~~~~~~~~~~~~~~~~ Выражения разрешены только в качестве первого элемента конвейера.+ CategoryInfo: ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId: ExpressionsMustBeFirstInPipeline
invoke-command -ScriptBlock {& cmd.exe /c "infacmd.bat ping" -dn "InfaDomain" -nn "Node01"} | Where-Object {$_ -ne 'Command ran successfully.'}