почему powershell не печатает txts с разрывами строки?

поэтому я пытаюсь отображать команды для сценария PowerShell для самостоятельного использования. Я использую текстовый файл в качестве источника списка. файл txt отформатирован так;

command (* is input)| description
----------------------------------------------------
pack                | opens folder pack
c * / cpp *         | copies mingw command to compile 
code                | reveals source
copy *              | copies input

Теперь; У меня есть функция, которая распечатывает этот текстовый файл, и функция такая;

Function help{
 Write-Host (get-content -path {file-path})
  }

Однако в терминале вывод выглядит так:

command (* is input)| description ----------------------------------------------------  pack           | opens folder pack * / cpp *                        | copies mingw command to compile  code

Как я могу это исправить?


person 1ctinus    schedule 04.12.2020    source источник


Ответы (1)


  • Не используйте Write-Host для вывода данных - он предназначен для отображения вывода.

    • Write-Host stringifies the array that Get-Content outputs, which means space-concatenating its elements, hence the single-line display.
  • Используйте Write-Output для вывода данных или, еще лучше, положитесь на функцию неявного вывода PowerShell:

Function help {
  # Get-Content's output is implicitly output.
  Get-Content -path somefile.ext
}

Дополнительную информацию см. В этом ответе.

person mklement0    schedule 04.12.2020