Do/Until 循环询问两次
Do/Until loop asking twice
此函数在一次正确行为后循环两次。我不知道为什么。
function Kürzel {
$samaccountname = Read-Host -prompt "Kürzel eingeben"
Get-ADUser -F {SamAccountName -eq $SamAccountName}
}
do {
if (Kürzel) {
Write-Host "Kürzel schon vorhanden"
Start-Sleep -s 1
}
} until (-not(Kürzel)
这是结果。我故意错了一个samaccountname 5次,但它只是write-host 3次。
Kürzel eingeben: pat
Kürzel schon vorhanden
Kürzel eingeben: pat
Kürzel eingeben: pat
Kürzel schon vorhanden
Kürzel eingeben: pat
Kürzel eingeben: pat
Kürzel schon vorhanden
Kürzel eingeben: cet
这是因为您在 if
和 until
条件中调用了 Kürzel
函数。您可以通过引入一个变量并省略第二个函数调用来简单地解决这个问题:
function Kürzel {
$samaccountname = Read-Host -prompt "Kürzel eingeben"
Get-ADUser -F { SamAccountName -eq $SamAccountName }
}
$isUnique = $true
do {
if (Kürzel) {
Write-Host "Kürzel schon vorhanden"
$isUnique = $false
Start-Sleep -s 1
} else {
$isUnique = $true
}
} until ($isUnique)
在循环中保存对Kürzel
的调用结果,因此您不必再次调用它:
do {
$vorhandenerKonto = Kürzel
if ($vorhandenerKonto) {
Write-Host "Kürzel schon vorhanden"
Start-Sleep -s 1
}
} until (-not($vorhandenerKonto))
此函数在一次正确行为后循环两次。我不知道为什么。
function Kürzel {
$samaccountname = Read-Host -prompt "Kürzel eingeben"
Get-ADUser -F {SamAccountName -eq $SamAccountName}
}
do {
if (Kürzel) {
Write-Host "Kürzel schon vorhanden"
Start-Sleep -s 1
}
} until (-not(Kürzel)
这是结果。我故意错了一个samaccountname 5次,但它只是write-host 3次。
Kürzel eingeben: pat
Kürzel schon vorhanden
Kürzel eingeben: pat
Kürzel eingeben: pat
Kürzel schon vorhanden
Kürzel eingeben: pat
Kürzel eingeben: pat
Kürzel schon vorhanden
Kürzel eingeben: cet
这是因为您在 if
和 until
条件中调用了 Kürzel
函数。您可以通过引入一个变量并省略第二个函数调用来简单地解决这个问题:
function Kürzel {
$samaccountname = Read-Host -prompt "Kürzel eingeben"
Get-ADUser -F { SamAccountName -eq $SamAccountName }
}
$isUnique = $true
do {
if (Kürzel) {
Write-Host "Kürzel schon vorhanden"
$isUnique = $false
Start-Sleep -s 1
} else {
$isUnique = $true
}
} until ($isUnique)
在循环中保存对Kürzel
的调用结果,因此您不必再次调用它:
do {
$vorhandenerKonto = Kürzel
if ($vorhandenerKonto) {
Write-Host "Kürzel schon vorhanden"
Start-Sleep -s 1
}
} until (-not($vorhandenerKonto))