PowerShell脚本不会产生错误,但是不能正常工作

问题描述 投票:3回答:2

我只想编写一个比较两个数字的基本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命令在命令提示符下写入文本,但是-什么也没有发生。

function powershell scripting
2个回答
4
投票

我认为您有点困惑。您创建了一个函数并将其保存到文件中。如果运行文件,PowerShell会说:

是的,函数已加载,别无其他,再见!

如果您打算从文件中运行此文件,则需要稍作更改。 This article完美描述了您的当前状况和问题。

这就是您的脚本最终看起来像:

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

0
投票

有点迟了,但我对您的代码感兴趣,想更正提示值:

function Number-comparison {

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

    )

如果使用上面的内容,它将正确提示用户。

© www.soinside.com 2019 - 2024. All rights reserved.