PowerShell写入主机附加到文本文件
我是PowerShell新手,正在编写一个超过500行的脚本。 我经常使用PowerShell写入主机附加到文本文件,powershell,Powershell,我是PowerShell新手,正在编写一个超过500行的脚本。 我经常使用write host命令。现在我正在做日志部分。 还有,很抱歉英语不好 我希望脚本将每个write host命令保存在.txt中, 追加并仍然让write host命令输出传递到Shell输出 我尝试过的事情: &{ # the script } *>> $logPath 它可以工作,但不允许输出通过。一种方法是通过如下方式包装整个脚本来使用cmdlet:- @( Write-Output &quo
write host
命令。现在我正在做日志部分。
还有,很抱歉英语不好
我希望脚本将每个write host
命令保存在.txt中,
追加并仍然让write host
命令输出传递到Shell输出
我尝试过的事情:
&{
# the script
} *>> $logPath
它可以工作,但不允许输出通过。一种方法是通过如下方式包装整个脚本来使用cmdlet:-
@(
Write-Output "######### Loop 1 #########"
foreach ($i in (1..5))
{
Write-Output $i "--> Loop1"
}
Write-Output "######### Loop 2 #########"
foreach ($i in (6..11))
{
Write-Output $i "--> Loop2"
}
Write-Output "######### Loop 3 #########"
foreach ($i in (12..15))
{
Write-Output $i "--> Loop3"
}
) | Out-file $env:USERPROFILE\Desktop\Output.txt -width 50
使用
Write Output
而不是Write Host
作为Write Host
写入控制台本身,其中asWrite Output
将输出发送到管道。有关详细信息,请参阅。我无法复制您的问题。如果我将脚本替换为写入主机“Hello World”,它会将Hello World
写入显示器。对于PowerShell版本,您正在使用吗?Tee对象
cmdlet就是为此而设计的。它将输出传递到控制台和文件。
@(
Write-Output "######### Loop 1 #########"
foreach ($i in (1..5))
{
Write-Output $i "--> Loop1"
}
Write-Output "######### Loop 2 #########"
foreach ($i in (6..11))
{
Write-Output $i "--> Loop2"
}
Write-Output "######### Loop 3 #########"
foreach ($i in (12..15))
{
Write-Output $i "--> Loop3"
}
) | Out-file $env:USERPROFILE\Desktop\Output.txt -width 50