PowerShell的for-each循环输出到文件

4
我如何将此foreach循环的内容输出/追加到文本文件中?
下面的代码不起作用。
$Groups = Get-AdGroup -Properties * -filter * | Where {$_.name -like "www*"}
Foreach($G in $Groups)
{
    write-host " "
    write-host $G.Name
    write-host "----------"
    get-adgroupmember -Identity $G | select-object -Property SamAccountName
    Out-File -filepath C:\test.txt -Append
}

1
托马斯·斯特林格已经掌握了它。 - Patrick87
你不能在循环中将 Get-ADGroupMember 管道传输到 Out-File 吗? - user4317867
1个回答

13
$output = 
    Foreach($G in $Groups)
    {
        write-output " " 
        write-output $G.Name
        write-output "----------"
        get-adgroupmember -Identity $G | select-object -Property SamAccountName
    }

$output | Out-File "C:\Your\File.txt"

这只是将foreach循环的输出保存到变量$output中,然后在完成后将数据转储到文件中。

注意: Write-Host会写入主机流,而不是输出流。将其更改为Write-Output将把它转储到$output变量,随后在循环完成后再转储到文件中。

你的原始代码之所以无法工作是因为你实际上没有向文件写入任何内容。换句话说,你没有向Out-File调用输送任何数据。无论如何,我的方法更偏好缓存-然后-转储方法。


我尝试过这个,但它只存储了所有工作的标题标签。我做错了什么? - Nazaf Anwar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接