powershell - 如何使用 PowerShell 从数组中的项目中删除字符
问题描述
我有一组计算机名称 $computers,它们采用 FQDN 格式。我想修剪第一个句号右侧的所有字符,包括句号。
例如:server-01.mydomain.int = server-01
这是我尝试过的,但它出错了。
$computers = Get-VM | Select Name
$computers = $computers.Substring(0, $computers.IndexOf('.'))
$computers
解决方案
当您这样做时|Select Name
,PowerShell 返回一个带有Name
属性的对象,而不仅仅是Name
输入对象的每个属性的值。
您可以将其更改为Select -ExpandProperty Name
然后使用循环遍历数组中的每个项目以进行实际的子字符串操作,或者ForEach-Object
- 尽管我们可以完全跳过第一步:
$computers = Get-VM |ForEach-Object { $_.Name.Substring(0, $_.Name.Indexof('.')) }