Powershell 如何使用split和substring以及foreach处理数组

Powershell 如何使用split和substring以及foreach处理数组,powershell,Powershell,如何使用split和substring以及foreach输出以下信息。谢谢 我尝试过使用split和substring以及变量来处理一行。如何使用foreach句柄3行或更多行。谢谢 输入: [阵列] server1操作系统版本2012 server2操作系统版本2012 server3操作系统版本2012 预期产出: 服务器1 2012 服务器2 2012 server3 2012您的数组示例有点含糊不清,因为我不确定它的结构。假设每个记录都是您在问题中定义的字符串,下面的代码可能适合您 我使

如何使用split和substring以及foreach输出以下信息。谢谢

我尝试过使用split和substring以及变量来处理一行。如何使用foreach句柄3行或更多行。谢谢

输入:

[阵列]

server1操作系统版本2012

server2操作系统版本2012

server3操作系统版本2012

预期产出:

服务器1 2012

服务器2 2012


server3 2012

您的数组示例有点含糊不清,因为我不确定它的结构。假设每个记录都是您在问题中定义的字符串,下面的代码可能适合您

我使用“空格”作为分隔符拆分每个元素。我选择第一个和最后一个元素,然后将这些元素重新连接在一起,以生成预期输出中显示的字符串

$ary = @(
    'server1 OS version 2012',
    'server2 OS version 2012',
    'server3 OS version 2012'
)

foreach($item in ($ary | Select-Object -Skip 1) ) {
    ($item.Split(" ") | Select-Object -Index 0, 3) -join " "
}
试试这个:

$array = @( 'server1 OS version 2012', 'server2 OS version 2012', 'server3 OS version 2012' )

$array | % { $token = @($_ -split ' '); "$($token[0]) $($token[3])" }

抱歉,但您需要更好地设置问题格式并更好地解释您的问题:)没问题,很乐意帮助!如果它解决了你的问题,你能把它作为答案吗?:)嗨,史蒂文,对不起,我还有一个问题,我怎么从第二排开始?例如,输入有3行(服务器1 2012、服务器2 2012、服务器3 2012)。但是输出只需要第二行和第三行(服务器2 2012,服务器3 2012)?没问题,我只是更新了我的答案。在数组中使用
选择对象
,并使用
-Skip 1
跳过第一行。我还修复了一个错误,
-Index
1,3
,而不是
0,3
,这是它应该的。