如何使用带有foreach循环的out-file

时间:2014-06-06 12:43:52

标签: powershell

$web = Get-SPWeb http://mysite 
ForEach($list in $web.Lists) 
{

if($list.BaseType -eq "DocumentLibrary")
{
    Write-Host $list.Fields
    if($list.Fields.ContainsField("marking") -eq $true)
    {
        Write-Host "found" $list.Title
    }
}
} | Out-File test.txt

我有这段代码,由于write-host输出到命令行而无法正常工作,所以很明显它不会写入文件。 我怎样才能这样做它不会输出到命令行但只输出找到的所有项目到文本文件

2 个答案:

答案 0 :(得分:2)

Out-File-Append开关放在要写的行后面,然后取出Write-Host

答案 1 :(得分:0)

这将是一种更清洁的方式,可能更快。你不会得到马车 返回你在$ list.Fields之后进入你的脚本,但我怀疑你不想要那个

$doclibraries = (Get-SPWeb http://mysite).Lists | where {$_.BaseType -eq 'DocumentLibrary'}
foreach ($library in $doclibraries) {
    $line = $library.Fields
    if ($Line.ContainsField('marking')) {
        Add-Content -Value "$line found $($library.title)" -Path test.txt
    }
}