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
}
我有一个数组列表,我要在其中保存一些值。我正在做一个 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
}