无法将“System.Object[]”类型的“System.Object[]”值转换为“System.Int32”类型。代码如
$al[1..3] = $al[1..3] -replace '^', '//'
或
$al[1..3] = $al[1..3] | ForEach-Object { "//" + $_ }
如何使用数组切片来修改数组中的字符串?
$al = @('Zero', 'One', 'Two', 'Three', 'Four')
$al[1] = "//" + $al[1];
$al[2] = "//" + $al[3];
$al[3] = "//" + $al[3];
Write-Host $al # Outputs: Zero //One //Two //Three Four
tldr:如何将文本添加到 powershell 字符串数组中特定行片段的开头?
给数组“切片”赋值,例如$al[1..3]
;从某种意义上说,这样的表达式不是切片,因为它是现有数组的窗口,而是包含所请求元素的new数组。 (不幸的是,当您尝试进行此类分配时,错误消息的措辞令人困惑。)
您最好的选择是通过将未修改的元素与通过
-replace
修改的元素连接起来来组成一个新数组。