首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >powershell管道对象的正确处理

powershell管道对象的正确处理
EN

Stack Overflow用户
提问于 2013-04-09 21:34:21
回答 2查看 1.3K关注 0票数 1

此脚本代码段正在访问函数中的网站( SharePoint )。它创建了一个SPWeb对象,该对象应该在函数结束时被释放,以避免内存泄漏。通常,处理对象的方法类似于$web.dispose()。在本例中,SPWeb对象是在管道中创建和使用的,但没有名称。

代码如下:

代码语言:javascript
代码运行次数:0
运行
复制
function foobar {
    $x = Get-SPWeb -Identity "http://mylocalsite/Sites/test1/test2" |
         ForEach-Object {$_.Lists | Where {$_.Title -EQ "someLibrary"} |  
         Select ID }
}

我怀疑SPWeb对象不会在管道末尾自动释放,并导致内存泄漏。

如何处理在管道中创建的对象?我有必要这么做吗?

仅供参考:$x没有名为“Dispose”的方法,因此$x.Dispose()不起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-09 21:45:12

我不知道如何“自动”处理对象,但要使Dispose方法可用,您需要中断该命令。现在,最终的结果是一个不支持该方法的list对象。

代码语言:javascript
代码运行次数:0
运行
复制
function foobar {
    $x = Get-SPWeb -Identity "http://mylocalsite/Sites/test1/test2"
    $list = $x.Lists['someLibrary'].Id
    $x.Dispose()
    $list
}
票数 1
EN

Stack Overflow用户

发布于 2017-07-06 00:30:07

更符合PowerShell vernacular的是通过使用Start-SPAssignmentStop-SPAssignment来维护管道,例如

代码语言:javascript
代码运行次数:0
运行
复制
function foobar {
    $assig = Start-SPAssignment
    $x = Get-SPWeb -Identity "http://mylocalsite/Sites/test1/test2" -AssignmentCollection $assign |
         ForEach-Object {$_.Lists | Where {$_.Title -EQ "someLibrary"} |  
         Select ID }
    Stop-SPAssignment $assign
}

这只是一个示例,而不是一个经过验证的代码示例,因为我目前没有现成的SharePoint服务器来测试它,但它给了您一个想法。如果我有机会,我会测试它,并相应地修改我的答案。

进一步的改进是将ForEach压缩到管道中

代码语言:javascript
代码运行次数:0
运行
复制
function foobar {
    $assig = Start-SPAssignment
    $x = Get-SPWeb -Identity "http://mylocalsite/Sites/test1/test2" -AssignmentCollection $assign |
         Select-Object -ExpandProperty Lists | 
         Where {$_.Title -EQ "someLibrary"} |  
         Select ID
    Stop-SPAssignment $assign
}

再说一次,这只是一个说明,而不是一个经过验证的代码示例。

下面的博客文章对assignment对象PowerShell, SharePoint and Memory Leaks (Start-SPAssignment)提供了一个很好的教程。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15903411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档