如何过滤PowerCLI命令输出 仅提取路径末尾的VMDK磁盘文件名
PowerCLI 提取虚拟磁盘纯VMDK文件名方案
直接用PowerShell原生路径处理cmdlet就能实现,不需要额外加载工具或写复杂过滤规则,以下是可直接执行的实现方式:
仅返回纯VMDK文件名(无任何其他冗余字段)
直接用Split-Path的-Leaf参数,该参数天生用于提取路径最后一段内容,可自动识别正斜杠/、反斜杠\两类路径分隔符,不会受不同存储的路径格式影响:Get-VM -Name alex-deploy2-000638 | Get-Harddisk | Select-Object -ExpandProperty Filename | ForEach-Object { Split-Path $_ -Leaf }执行后逐行输出的结果就是类似
alex-deploy2-000638_2.vmdk的纯磁盘文件名,不会返回CapacityGB、Persistence等无关字段。需保留容量、持久化属性,仅将路径替换为纯文件名
如果需要同时参考磁盘其他参数,可以用计算属性自定义输出列:Get-VM -Name alex-deploy2-000638 | Get-Harddisk | Select-Object ` CapacityGB, Persistence, @{Name='VMDK文件名';Expression={Split-Path $_.Filename -Leaf}}
不推荐直接用字符串
Split('/')[-1]的方式截取:如果遇到路径末尾自带斜杠、或者路径混用正反斜杠的场景,这种写法容易返回空值或者截取错误,Split-Path是PowerShell官方适配的路径处理方法,稳定性更高。
内容的提问来源于stack exchange,提问作者Dh3va
相关产品推荐
相关产品推荐

