Как отформатировать ошибку вывода, чтобы сервер не отображался дважды? - PullRequest
0 голосов
/ 24 октября 2018

У меня есть этот сценарий:

$params = '/r', '/f',
          '/t', '0',
          '/d', 'p:0:0',
          '/c', 'PlannedRestart'

$servers | ForEach-Object {
    $output = & shutdown.exe /m "\\${_}" @params 2>&1
    if ($LastExitCode -eq 0) {
        "{0}`tRestarted" -f $_
    } else {
        "{0}`tRestart failed:`t{1}" -f $_, $output
    }
} | Set-Content '.\RestartServers_LOG.txt'

при сбое он печатается следующим образом:

server1 Не удалось перезапустить: server1: error

я хочу напечатать:

server1 Перезапуск не выполнен: ошибка

1 Ответ

0 голосов
/ 24 октября 2018

Если имя хоста всегда появляется в начале захваченного вывода, вы можете удалить его простой заменой, например, так:

"{0}`tRestart failed:`t{1}" -f $_, ($output -replace "^${_}:")

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...