powershell:if循环,而arraylist的第一个位置在进程中

powershell: if loop, while the first position of arraylist in in process

我有一个数组列表,我要在其中保存一些值。我正在做一个 foreach 循环,如果一个值要保存在 ArrayList 的第一个位置,我想输出一个 "First position" 行,否则,什么都不应该做。 我在下面写的 if 块不起作用。

<# Don't consider this code from here

[System.Collections.ArrayList]$alist = @()
$al ="keeranpc01,www.google.ch,192.168.0.25"

$al = $al.Split(",")
foreach($h in $al){
    # Abstand vor dem Hostnamen löschen
    if($h.contains(' ')) {
        $h = $h -replace '\s', ''
    }
    $alist.Add($h)
}
to here
#>


#### Start here
[System.Collections.ArrayList]$rear = @()

foreach($ha in $alist) {
    $PingConnetion = Test-Connection $ha -Count 1 -ErrorAction SilentlyContinue
    $pcre = $ha
    $pire =  if($PingConnetion.ResponseTime -ne $null) {Write-output 'Erreichbar'}else{Write-Output 'Nicht Erreichbar'}
    $zure = $PingConnetion.ResponseTime 
    $zeit = Get-Date -Format HH:mm:ss

    if($alist[$_] -eq $alist[0]) {Write-Host 'First position'}
    [void]$rear.Add([PSCustomObject]@{Zeit = $zeit; Host = $pcre; IPv4 = $PingConnetion.IPV4Address.IPAddressToString; Ping = $pire; Zugriffszeit = $zure; })
}

if 语句应该怎么写才能实现?我希望 if 语句起作用,只有当 ArrayList 的第一个位置在处理中时

感谢

除了将 alist 的元素零与无效的 alist 的序号位置进行比较外,您要做的事情确实有效。您需要比较以下内容:

if($ha -eq $alist[0]) {Write-Host 'First position'}

下面是一个可能更清楚的示例。

$input = 1..10    
foreach($x in $input){
    if($input[0] -eq $x){
        write-host "First Position"
    }
    $x
}