2016-10-26 22 views
0

文字列の一覧から特定の文字列をIISログで検索しています。結果をテキストファイルに出力したい。次のコードは、検索結果をコンソールに正しく出力します。内容をファイルにリダイレクトすると、ファイルに何も表示されません。ファイルに書き出すためのすべてのガイドが簡単に見えるように、私はなぜこれが起こっているのかを迷っています。これはなぜファイルに内容を書き込まないのですか?

$items = ('item1', 'item2', 'item3') 
$searchresults = 'e:\temp\IISSearch.txt' 
foreach ($item in $items) 
{ 
Select-String -Path e:\logs\*.log -Pattern $item | out-file $searchresults -Encoding utf8 
} 
+1

を試してみてくださいあなたの検索用語。 –

+0

ああ!どうもありがとう – kafka

答えて

2

私の最高の推測では、あなたのアウトファイルに-appendフラグを欠場し、最後のログ・ファイルのいずれかが含まれていないということである。この

$items = ('item1', 'item2', 'item3') 
    $searchresults = 'e:\temp\IISSearch.txt' 
    foreach ($item in $items) 
    { 
    Select-String -Path e:\logs\*.log -Pattern $item | out-file $searchresults -Encoding utf8 -Append 
    } 

または単に

$items = ('123456', 'item2', 'item3') 
    $searchresults = 'e:\temp\IISSearch.txt' 

    $items | %{Select-String -Path e:\temp\*.txt -Pattern $_} | out-file $searchresults -Encoding utf8