CmdletBindingAttribute之SupportsPaging的作用
来源:互联网 发布:linux中复制文件夹命令 编辑:程序博客网 时间:2024/06/05 02:44
今天我们要介绍的是PowerShell 3.0中CmdletBindingAttribute里最后一个新特性:SupportPaging。该参数可以允许用户对输出的数据进行不同的数据形势输出,尤其对于大型的数据结果输出等。
它支持以下三种:First、Skip、IncludeTotalCount
-First:只得到先前的第'n'的对象。
-Skip:忽略先前第'n'个对象数,得到剩余的数据。
-IncludeTotalCount:得到所有数据的个数。
我们先从IncludeTotalCount这个参数开始着手,看看它的作用:
Function Get-PagingInfo{ [CmdletBinding(SupportsPaging=$true)] Param ( [Parameter()] $StringData ) If($PSCmdlet.PagingParameters.IncludeTotalCount) { [Double]$Accuracy = 1.0 $PSCmdlet.PagingParameters.NewTotalCount($StringData.count,$Accuracy) }}
如下,我们用方法配合IncludeTotalCount参数可以得到指定对象的数据个数。
Get-PagingInfo -StringData (Get-ChildItem C:\Windows) -IncludeTotalCountTotal count: 80
如下我们引用一个例子来看看如何使用skip 和 first参数:
Function Get-PagingInfo{ [CmdletBinding(SupportsPaging = $True)] Param ( [Parameter()] $StringData ) Begin{} Process{ } End { If($StringData.count -gt 0) { If($PSCmdlet.PagingParameters.Skip -ge $StringData.count) { Write-Verbose "No results satisfy the Skip parameters" } Elseif($PSCmdlet.PagingParameters.First -eq 0) { Write-Verbose "No results satisfy the First parameters" } Else { $First = $PSCmdlet.PagingParameters.Skip Write-Verbose ("First: {0}" -f $First) $Last = $First + [Math]::Min($PSCmdlet.PagingParameters.First, $StringData.Count - $PSCmdlet.PagingParameters.Skip) - 1 } If ($Last -le 0) { $StringData = $Null } Else { $StringData = $StringData[$First..$last] Write-Output $StringData } Write-Verbose ("Last: {0}" -f $Last) } If ($PSCmdlet.PagingParameters.IncludeTotalCount){ [double]$Accuracy = 1.0 $PSCmdlet.PagingParameters.NewTotalCount($StringData.count, $Accuracy) } }}
我们可以看到列出前5条数据如下:
Get-PagingInfo -StringData (Get-ChildItem C:\Windows) -first 5 Directory: C:\WindowsMode LastWriteTime Length Name ---- ------------- ------ ---- d---- 7/26/2012 1:04 AM AppCompat d---- 7/26/2012 1:09 AM apppatch d-r-- 7/26/2012 1:04 AM assembly d---- 7/26/2012 1:04 AM AUInstallAgent d---- 7/26/2012 1:04 AM Boot
我们也可以同时搭配使用,这个命令是指跳过2条数据后,列出前5条数据。
Get-PagingInfo -StringData (Get-ChildItem C:\Windows) -first 5 -Skip 2 Directory: C:\WindowsMode LastWriteTime Length Name ---- ------------- ------ ---- d-r-- 7/26/2012 1:04 AM assembly d---- 7/26/2012 1:04 AM AUInstallAgent d---- 7/26/2012 1:04 AM Boot d---- 7/26/2012 1:04 AM Branding d---- 7/26/2012 1:07 AM CbsTemp
- CmdletBindingAttribute之SupportsPaging的作用
- CmdletBindingAttribute之HelpURI的作用
- CmdletBindingAttribute之PostionalBinding的作用
- 感想之blog的作用
- 读书笔记之final的作用
- Spring之ContextLoaderListener的作用
- Spring之ContextLoaderListener的作用
- Spring之ContextLoaderListener的作用
- Oracle之监听的作用
- Spring之ContextLoaderListener的作用
- Redis 之 Redis的作用
- Spring之ContextLoaderListener的作用
- Spring之ContextLoaderListener的作用
- Spring之ContextLoaderListener的作用
- Spring之ContextLoaderListener的作用
- Spring之ContextLoaderListener的作用
- Spring之ContextLoaderListener的作用
- Spring之ContextLoaderListener的作用
- SQL中datetime和timestamp的区别
- oracle中索引
- 淘宝性能测试要点
- 有趣的 Linux 命令
- 解析spring schedule
- CmdletBindingAttribute之SupportsPaging的作用
- Linux学习笔记一:yum本地源配置和stardict安装
- 架构师的那些事儿
- 黑马程序员_有关.NET的基础知识分享
- android建立NDK项目调用jrtplib与pc机进行通讯
- 分享一些牛人的心得
- hessian源码分析(一)------架构
- SQL Server 2008系统和ADO技术图示分析
- 让小公司事半功倍的15款应用