Powershellのnoobから私を甘やかさないでください:-) 私は処理しなければならないいくらか大きなログファイル(600MB)を持っていますので、スクリプトは本質的に"Message Received"はそれらの行をトークン化し、出力ファイルにいくつかのトークンを出力します。Powershellのメモリ使用量
スクリプトのロジックは問題ありませんが、問題は、出力ファイルにファイルを書き込んだり、ファイルのサイズが大きくなったりすることです。また、powershellが利用するメモリ量も増えますメモリが枯渇するまで。
どのように私はこれを停止することができます示唆することはできますか?私は、一時ファイルにログを分割し、代わりに一時ファイルを処理して10MBと言うだけのことを考えましたか?
HERESに私のコード、あなたたちは与えることができる任意のヘルプは素晴らしい:-)あなたが効果的にそれが少しずつアクセスする代わりに、シーケンシャルのメモリ内のログファイル全体を保存している
Get-Date | Add-Content -Path d:\scripting\logparser\testoutput.txt
$a = Get-Content D:\scripting\logparser\importsample.txt
foreach($l in $a){
#$l | Select-String -Pattern "Message Received." | Add-Content -Path d:\scripting\logparser\testoutput.txt
if
(($l | Select-String -Pattern "Message Received." -Quiet) -eq "True")
{
#Add-Content -Path d:\scripting\logparser\testoutput.txt -value $l
$var1,$var2,$var3,$var4,$var5,$var6,$var7,$var8,$var9,$var10,$var11,$var12,$var13,$var14,$var15,$var16,$var17,$var18,$var19,$var20 = [regex]::split($l,'\s+')
Add-Content -Path d:\scripting\logparser\testoutput.txt -value $var1" "$var2" "$var3" "$var4" "$var16" "$var18
}
else
{}
}
Get-Date | Add-Content -Path d:\scripting\logparser\testoutput.txt
おかげリチャード、あなたはイムにnoobのを見ることができますが、私は:-)そこに着くだろうと –