PowerShell for-each循环输出到文件

时间:2015-07-23 19:21:30

标签: powershell

如何将此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 个答案:

答案 0 :(得分:10)

$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电话拨打任何数据。不管怎样,我的方法更喜欢缓存然后转储方法。

相关问题