Как сохранить результаты функции в текстовом файле в Powershell - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть функция ниже, которая производит несколько выходов, есть ли способ поместить все выходы функции в текстовый файл. Я попробовал ниже использовать Out-File, он не работал ни с какими предложениями?

cls

function functionAD {Write-output ""...}

functionAD | Out-File -FilePath C:\test\task5.txt -Append

скрипт выше все еще не работал.

1 Ответ

2 голосов
/ 16 апреля 2020

ОБНОВЛЕНИЕ: На самом деле это возможно, если перезаписать функцию Write-Host. Это можно сделать так:

function Write-Host($toWrite) {
    Write-Output $toWrite
}

Скопируйте и вставьте этот код в консоль PowerShell, затем запустите программу.

Не беспокойтесь о постоянной перезаписи команды Write-Host, это будет продолжаться только для текущего сеанса.

СТАРЫЙ КОММЕНТАРИЙ:

К сожалению, Write-Host невозможно перенаправить в другой файловый поток. Это единственная команда write, которая действует таким образом. Вот почему программисты PowerShell обычно стараются избегать его использования, если для этого нет особых причин. Он предназначен для сообщений, отправляемых непосредственно пользователю, и, следовательно, отправляется в саму программу (powershell), а не в консоль.

Я бы предложил использовать какую-то другую команду, если функция ваша. Write-Output - это всегда безопасная ставка, поскольку ее можно перенаправить на любой другой поток.

Если у вас есть дополнительные вопросы, перейдите по ссылке: https://devblogs.microsoft.com/scripting/understanding-streams-redirection-and-write-host-in-powershell/

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