Это древний. Но я написал это некоторое время назад, чтобы добавлять и удалять из списков powershell с помощью рекурсии. Он использует способность powershell для выполнения многократного назначения . То есть вы можете сделать $a,$b,$c=@('a','b','c')
, чтобы назначить b и c их переменным. Выполнение $a,$b=@('a','b','c')
назначает 'a'
на $a
и @('b','c')
на $b
.
Сначала по значению товара. Это удалит первое вхождение.
function Remove-ItemFromList ($Item,[array]$List(throw"the item $item was not in the list"),[array]$chckd_list=@())
{
if ($list.length -lt 1 ) { throw "the item $item was not in the list" }
$check_item,$temp_list=$list
if ($check_item -eq $item )
{
$chckd_list+=$temp_list
return $chckd_list
}
else
{
$chckd_list+=$check_item
return (Remove-ItemFromList -item $item -chckd_list $chckd_list -list $temp_list )
}
}
Это удаляет по индексу. Вы, вероятно, можете все испортить, передав значение для подсчета в начальном вызове.
function Remove-IndexFromList ([int]$Index,[array]$List,[array]$chckd_list=@(),[int]$count=0)
{
if (($list.length+$count-1) -lt $index )
{ throw "the index is out of range" }
$check_item,$temp_list=$list
if ($count -eq $index)
{
$chckd_list+=$temp_list
return $chckd_list
}
else
{
$chckd_list+=$check_item
return (Remove-IndexFromList -count ($count + 1) -index $index -chckd_list $chckd_list -list $temp_list )
}
}