【问题标题】:Fetching volume number in PowerShell在 PowerShell 中获取卷号
【发布时间】:2018-08-21 03:05:30
【问题描述】:

我正在运行 PS cmdlet get-customcmdlet,它会生成以下输出

Name                         FreeSpaceGB
----                         -----------
ABC-vol001                   1,474.201
ABC-vol002                   2,345.437     
ABC-vol003                   3,147.135
random-value                 4,147.135

我想从最高的volume numberABC-vol003 中捕获003 我也想忽略random-value,只想考虑其中包含vol 的值

get-customcmdlet | select Name 

Name              
----          
ABC-vol001   
ABC-vol001      
ABC-vol001
random-value

在这里,我希望 003 可以根据最高音量进行更改

【问题讨论】:

    标签: windows powershell powershell-3.0


    【解决方案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
    

    【讨论】:

    • 谢谢!我对我的问题做了一个小的更新。你能相应地回答吗
    • 不加太多,不过也可以用... -descending | Select -First 1
    • 我得到random-value 4,147.135 作为输出。我想忽略所有random-value,只包括其中有vol
    • 我可以通过select Name | Where-Object Name -match vol实现它
    猜你喜欢
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    • 2014-10-06
    • 1970-01-01
    相关资源
    最近更新 更多