Windows 正在获取PowerShell中的卷号
我正在运行PS cmdletWindows 正在获取PowerShell中的卷号,windows,powershell,powershell-3.0,Windows,Powershell,Powershell 3.0,我正在运行PS cmdletget customcmdlet,它正在生成以下输出 Name FreeSpaceGB ---- ----------- ABC-vol001 1,474.201 ABC-vol002 2,345.437 ABC-vol003 3,147.135 rando
get customcmdlet
,它正在生成以下输出
Name FreeSpaceGB
---- -----------
ABC-vol001 1,474.201
ABC-vol002 2,345.437
ABC-vol003 3,147.135
random-value 4,147.135
我想从最高<代码>卷号< /COD> <代码> ABC-VAL03捕获< <代码> 003 >代码>我也要忽略<代码>随机值< /> >,只考虑在
中有<代码> vOL<代码>的值。get-customcmdlet | select Name
Name
----
ABC-vol001
ABC-vol001
ABC-vol001
random-value
在这里,我希望
003
根据最高卷数变化您可以进行自定义排序,并选择最后一项,如:
Get-CustomCmdlet | Sort {$_.Name -replace '.*?(\d+)$','$1'} | Select -Last 1
编辑:看起来您已经知道如何使用Where
,因为在编辑之前您的问题中已经有了它,但是您可以使用它来仅获取名称中包含“vol”的卷,然后对它们进行排序
Get-CustomCmdlet | Where{$_.Name -match '-vol\d+'} | Sort {$_.Name -replace '.*?(\d+)$','$1'} | Select -Last 1
您可以进行自定义排序,然后选择最后一项,如:
Get-CustomCmdlet | Sort {$_.Name -replace '.*?(\d+)$','$1'} | Select -Last 1
编辑:看起来您已经知道如何使用Where
,因为在编辑之前您的问题中已经有了它,但是您可以使用它来仅获取名称中包含“vol”的卷,然后对它们进行排序
Get-CustomCmdlet | Where{$_.Name -match '-vol\d+'} | Sort {$_.Name -replace '.*?(\d+)$','$1'} | Select -Last 1
谢谢我对我的问题做了一个小的更新。你能不能相应地回答这个问题?没有太多的补充,但你也可以使用
-降序|选择-第一个1
。我将获得随机值4147.135
作为输出。我想忽略所有随机值
,只包括itI中具有vol
的值。我可以通过使用选择名称|其中对象名称-匹配vol
来实现这一点,谢谢!我对我的问题做了一个小的更新。你能不能相应地回答这个问题?没有太多的补充,但你也可以使用-降序|选择-第一个1
。我将获得随机值4147.135
作为输出。我想忽略所有随机值
,只包括itI中具有vol
的值。我可以通过使用选择名称|其中对象名称-匹配vol