powershell:if循环,而arraylist的第一个位置正在处理中



我有一个数组列表,我将在其中保存一些值。我正在执行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的第一个位置正在处理时

thx

除了将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
}

相关内容

最新更新