首页 > 解决方案 > 如何使用 PowerShell 从数组中的项目中删除字符

问题描述

我有一组计算机名称 $computers,它们采用 FQDN 格式。我想修剪第一个句号右侧的所有字符,包括句号。

例如:server-01.mydomain.int = server-01

这是我尝试过的,但它出错了。

$computers = Get-VM | Select Name
$computers = $computers.Substring(0, $computers.IndexOf('.'))
$computers

标签: powershell

解决方案


当您这样做时|Select Name,PowerShell 返回一个带有Name属性的对象,而不仅仅是Name输入对象的每个属性的值。

您可以将其更改为Select -ExpandProperty Name然后使用循环遍历数组中的每个项目以进行实际的子字符串操作,或者ForEach-Object- 尽管我们可以完全跳过第一步:

$computers = Get-VM |ForEach-Object { $_.Name.Substring(0, $_.Name.Indexof('.')) }

推荐阅读