PowerShell Script не генерирует ошибку, но работает неправильно - PullRequest
3 голосов
/ 15 октября 2019

Я просто хочу написать базовый скрипт PowerShell, который сравнивает два числа. Когда я вызываю свой скрипт через .\Compare-Numbers.ps1 -a 3 -b 3, ничего не происходит.

function Compare-Numbers {

    param(
    [Parameter(Mandatory=$True, HelpMessage="Please enter two numbers")]
    [int]$a, 
    [int]$b
    )

    try {
        if($a -eq $b) {
            Write-Host "the given numbers are equal"
            return (exit 0)
        }
        else {
            Write-Host "the given numbers are not equal"
            return (exit 1)
        }
    }
    catch {
        throw "an error occured!"
        exit $LASTEXITCODE
    }
}

Я ожидаю, что команда write-host записывает текст в моей командной строке, но - ничего не происходит.

Ответы [ 2 ]

4 голосов
/ 15 октября 2019

Я думаю, вы немного смущены. Вы создали функцию и сохранили ее в файл. Если вы запустите файл, PowerShell скажет:

Да, функция загружена, ничего другого, пока!

Если вы планируете запустить это из файла,вам нужно будет немного изменить свой подход. Эта статья отлично описывает вашу текущую ситуацию и проблему.

Вот как ваш скрипт будет выглядеть:

Param($intOne = 5,
$intTwo = 3
)
Function add-numbers
{
Param($intOne,
$intTwo
)
$intOne + $intTwo
} #end function add-numbers
# *** entry point to script ***
add-numbers -intOne $intOne -inttwo $intTwo
1 голос
/ 17 октября 2019

Немного поздний ответ, но я заинтересовался вашим кодом и хотел исправить подсказку о значении:

function Number-comparison {

    param(
    [Parameter(Mandatory=$True, HelpMessage="text")][int]$a1,
    [Parameter(Mandatory=$True, HelpMessage="text")][int]$b1

    )

Если мы воспользуемся вышеизложенным, он правильно выведет запрос пользователю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...