Powershell всегда дает утверждение в другом как результат - PullRequest
1 голос
/ 26 апреля 2019

У меня есть этот код:

$eingabe

write-Host "Eingabe Bitte:"
Read-Host = $eingabe

if($eingabe -ge 6) {
    Write-Host "Eingabe war  gleich oder grösser als 6"
} else {
    Write-Host "Eingabe war kleiner als  6"
}

Read-Host

независимо от того, какое число я ввожу, оно показывает оператор else "Eingabe war kliener als 6" (входное значение было меньше 6). Что означает, что независимо от того, что я ввожу в инструкцию, в результате будет показано ...

я что-то написал не так?

Спасибо за ответы

1 Ответ

1 голос
/ 26 апреля 2019

Как уже упоминалось в моем комментарии, запись 50 даст странный результат:

## Q:\Test\2019\04\26\SO_55869325.ps1

$eingabe = Read-Host -Prompt "Eingabe Bitte"

if($eingabe -ge 6) {
    Write-Host "Eingabe $eingabe war gleich oder grösser als 6"
} else {
    Write-Host "Eingabe $eingabe war kleiner als  6"
}

Eingabe Bitte: 50
Eingabe 50 war kleiner als  6

При выполнении сравнения строк символ за символом сравнивается до конца.

Таким образом, 5 сравнивается с 6, а 5 меньше.

Либо явное приведение $ eingabe к [int], [decimal] или [double], либо поменять логику и позволить PowerShell привести $ Eingabe к int

if (6 -le $Eingabe){...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...