缩短Powershell cmdlet输出属性结果
我在Powershell中有一个示例查询缩短Powershell cmdlet输出属性结果,powershell,Powershell,我在Powershell中有一个示例查询 Get-AzureRmDisk -ResourceGroupName $resourceGroupName | Format-Table -Property Name, Managed By 结果 Name : OsDisk_1_dfa60a ManagedBy : /subscriptions/resourceGroups/Company/Microsoft.Compute/vms/Server1 managed by属性的输出太长。
Get-AzureRmDisk -ResourceGroupName $resourceGroupName |
Format-Table -Property Name, Managed By
结果
Name : OsDisk_1_dfa60a
ManagedBy : /subscriptions/resourceGroups/Company/Microsoft.Compute/vms/Server1
managed by属性的输出太长。 我想把它缩短为最后一个
/
后面的字符(正斜杠)
预期结果
Name : OsDisk_1_dfa60a
ManagedBy : Server1
到目前为止,我已经尝试使用substring和的最后一个索引来计算“/”的索引,并在那里开始子字符串,然后在ManagedBy属性字符串的全长处结束子字符串
Get-AzureRmDisk -ResourceGroupName $resourceGroupName |
Format-List -Property Name,
ManagedBy.SubString(ManagedBy.LastIndexOf('/'),ManagedBy.length)
随后出现错误:ManagedBy.LastIndexOf:术语“ManagedBy.LastIndexOf”无法识别为cmdlet、函数、脚本文件的名称
解决方案
Get-AzureRmDisk -ResourceGroupName $resourceGroupName |
Format-Table -Property Name,
@{Name='ManagedBy';Expr={$_.ManagedBy.Split('/')[-1]}}
如果
然后
$LastResult = $ManagedBy.Split("/")[$ManagedBy.Split("/").Length - 1]
它只返回数组中的最后一个值,在本例中是Server1
。数组从0(零)的位置开始,因此您只需从数组的长度的末尾开始走1步
在这种情况下,将ManagedBy
属性更改为$LastResult
的值,您应该能够将该值合并到代码的其余部分中。如果
然后
$LastResult = $ManagedBy.Split("/")[$ManagedBy.Split("/").Length - 1]
它只返回数组中的最后一个值,在本例中是Server1
。数组从0(零)的位置开始,因此您只需从数组的长度的末尾开始走1步
在这种情况下,将ManagedBy
属性更改为$LastResult
的值,您应该能够将该值合并到代码的其余部分中。这将为您提供所需的内容
Format-List -Property Name,
@{Name='ManagedBy';Expr={$_.ManagedBy.Split('/')[-1]}}
这会给你你想要的
Format-List -Property Name,
@{Name='ManagedBy';Expr={$_.ManagedBy.Split('/')[-1]}}
错过了一个右大括号。迈克,这个过程叫什么?“{Name=”-我想查找并了解更多信息。感谢您的时间{Name=…
是一个计算属性。或者错过了一个右大括号。迈克,这个过程叫什么?“{Name=”-我想查找并了解更多信息。谢谢您的时间@{Name=…
是计算属性。或