当前位置:  开发笔记 > 编程语言 > 正文

Powershell内存使用情况

如何解决《Powershell内存使用情况》经验,为你挑选了1个好方法。

一个小白将根据PowerShell的进出口升技所以,请不要责备我:-)所以我有一些相当大的日志文件(600MB),我需要处理,我的剧本基本上剔除了那些包含行"收到的消息",然后tokenises那些行并将一些标记输出到输出文件.

脚本的逻辑很好(虽然我确定它可能更有效)但问题是,当我将行写入输出文件并且文件随后变得越来越大时,powershell使用的内存量也增加到了记忆力衰竭.

任何人都可以建议我如何阻止这种情况发生?我想将日志分解成只有10mb的临时文件然后处理临时文件而不是?

继承我的代码,你们给予的任何帮助都会很棒:-)

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

Richard.. 7

如果您在管道中执行所有操作,则一次只能有一个对象(在您的情况下来自文件的一行)需要在内存中.

Get-Content $inputFile | Where-Object { $_ -match "Message Received" } |
  foreach-object -process {
  $fields = [regex]::split($_,'\s+') # An array is created
  Add-Content -path $outputFile -value [String]::Join(" ", $fields[0,1,2,3,15,17])
}

所述$fields[0,1,2,3,15,17]创建的给定索引的阵列$fields.

这也可以在单个管道中使用表达式而不是传递给Select-Object的属性名称来完成,但不太清楚.



1> Richard..:

如果您在管道中执行所有操作,则一次只能有一个对象(在您的情况下来自文件的一行)需要在内存中.

Get-Content $inputFile | Where-Object { $_ -match "Message Received" } |
  foreach-object -process {
  $fields = [regex]::split($_,'\s+') # An array is created
  Add-Content -path $outputFile -value [String]::Join(" ", $fields[0,1,2,3,15,17])
}

所述$fields[0,1,2,3,15,17]创建的给定索引的阵列$fields.

这也可以在单个管道中使用表达式而不是传递给Select-Object的属性名称来完成,但不太清楚.

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有