2014-06-06 46 views
0
$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输出到命令行,所以显然不会写入文件。 我怎样才能使它所以它不会输出到命令行,但只是输出找到的所有文本文件中的项目如何使用foreach循环的out-file

回答

2

将您Out-File你想写线后-Append开关,取出Write-Host

+0

我不是在写文件我希望它输出至? – user3328513

+0

是的,就像“找到”$ list.Title | Out-File test.txt - 附加 – notjustme

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 
    } 
}