Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
缩短Powershell cmdlet输出属性结果_Powershell - Fatal编程技术网

缩短Powershell cmdlet输出属性结果

缩短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属性的输出太长。

我在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属性的输出太长。 我想把它缩短为最后一个
/
后面的字符(正斜杠) 预期结果

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=…
是计算属性。或