【问题标题】:Grab the latest volume using PowerShell使用 PowerShell 获取最新卷
【发布时间】:2018-06-03 05:12:06
【问题描述】:

我正在努力尝试使用 PowerShell 获取最新的volume/Drive

我有一个 PowerShell 的结果看起来像这样

PS C:\Users\me> Get-WMIObject Win32_Volume | select Name

Name
----
C:\
D:\
E:\
\\?\Volume{021a6bbd-0b97-4973-824a-7c635e362f09}\
\\?\Volume{bae1c1d6-59c3-44b1-9360-b7d3101c0e92}\


PS C:\Users\me>

如果我只想访问这个

E:

如何过滤到字母顺序最高的:\

我一直在使用Select-String 尝试很多选项,但结果似乎更糟。

【问题讨论】:

  • Get-psdrive -PSProvider FileSystem | Sort-Object -Property Root | Select-Object -Last 1 -ExpandProperty Root 之类的呢?
  • 这非常有效。请回答。这是你的。
  • 最新的还是最后的?
  • 根据我问的帖子最新的一个。

标签: windows powershell windows-10


【解决方案1】:

你想要的不以“\\”开头。驱动器号可以按任意顺序返回,因此您需要对它们进行排序并取最后一个:

Get-WMIObject Win32_Volume | Where-Object {$_.Name -NotLike '\\*'} | select Name | Sort-Object -Property Name | Select-Object -Last 1

或者,如果已知驱动器号在 A 到 Z 范围内,那么使用 -Like '[A-Z]*' 而不是 -NotLike '\\*' 会更明智。

【讨论】:

    【解决方案2】:

    试试这样的

    Get-WMIObject Win32_Volume | where {$_.Name -eq "E:\"}
    

    这应该为您提供一个对象列表,您可以像数组一样访问这些对象。这里还有很多有用的信息https://technet.microsoft.com/en-gb/library/2007.04.powershell.aspx

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-21
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多