Write-Debug
предназначен для вывода простых сообщений, когда настройки отладки установлены определенным способом . Требуется только строка, а не просто что-то, что делает Write-Host
(и магически форматирует). Вам придется самостоятельно форматировать вывод в одну строку.
Вы можете объединить Write-Host
и Write-Debug
, если у вас есть дополнительная информация для вывода перед запросом пользователя:
if ($DebugPreference -ne 'SilentlyContinue') {
Write-Host 'such-and-such array:' $array
}
Write-Debug 'such-and-such array dumped'
Write-Host
используется, потому что он всегда будет писать на хост консоли, а не на вывод скрипта, как Write-Output
. Если вы перенаправили стандартный вывод сценария в файл, Write-Output
окажется в файле, а Write-Host
все равно будет отображаться в консоли.
Вы также можете попробовать сделать что-то подобное, если ваш массив имеет достаточно простой тип, и автоматический вызов ToString()
для них (если они уже не являются строками) даст вам то, что вы хотите:
$array = 'Alice','Bob','Charlie'
Write-Debug ([String]::Join("`n", $array))