Назад | Перейти на главную страницу

Конкатенация результата функции со строкой в ​​PowerShell

function log-file {
  param($message)
  Add-Content -path $logfile -Value "$(Get-Date) $message"
}

function ping-server {
  param($server)
  $ping = New-Object System.Net.NetworkInformation.Ping
  $ping.Send("$server")
}

log-file "Pinging server = " + (ping-server $server).status

Как я могу заставить вышеуказанное работать с одной строкой, а не делать это:

$pingable = (ping-server $server).status
log-file "Pinging server = $pingable"

Попробуйте внести это изменение в вызов функции файла журнала

log-file $("Pinging server = " + (ping-server $server).status)

Есть много способов объединить / склеить строки в PowerShell, но я предпочитаю избегая знака плюс, потому что его основная роль - сложение, а иногда и путаница со строками.

Я думаю, что более эффективный и читаемый способ следующий:

log-file $("Pinging server = $((ping-server $server).status)")

Просто оберните свою функцию в $ () и поместите ее в двойные кавычки.

Читать далее;