2

我不确定我在这里做错了什么,但下面的代码返回以下错误消息:

术语“identityTest”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。

这是我的示例/测试代码:

#Bunch of Global vars
$UrlToUse = identityTest

function identityTest
{
    $internalMatch = ".*inbound"
    $externalMatch = ".*outbound"
    $fqdn = "blahblah_inbound"

    if ( $fqdn -match $internalMatch )
    {
        return "http://in3"
        Write-Host "Inbound Hit"
    }
    if ( $fqdn -match $externalMatch )
    {
        return "http://out"
        Write-Host "Outbond Hit"
    }
    else
    {
        return "http://default"
        write-host "Default Hit"
    }
}    


function sampleTest
{
    write-host "will upload to the following URL: + $UrlToUse
}

Write-Host $UrlToUse

不确定我是否在这里采取了正确的方法,但这是我想要完成的。我计划根据 indetityTest 函数中 if 语句的结果将 UrlToUse 设置为全局变量,该函数将确定并返回正确的变量。从那里我将在我的其余代码中使用相同的全局变量。我创建的一个示例将在另一个函数中使用相同的 var $UrlToUse,在本例中名称为 sampleTest。

我不明白为什么这不起作用。我来自 Perl 背景,可能会对 powershell 中的工作方式感到困惑。任何提示指针等将非常感激。

非常感谢!

4

1 回答 1

1

在调用函数 identityTest 之前移动它。像这样:

function identityTest
{
    $internalMatch = ".*inbound"
    $externalMatch = ".*outbound"
    $fqdn = "blahblah_inbound"

    if ( $fqdn -match $internalMatch )
    {
        return "http://in3"
        Write-Host "Inbound Hit"
    }
    if ( $fqdn -match $externalMatch )
    {
        return "http://out"
        Write-Host "Outbond Hit"
    }
    else
    {
        return "http://default"
        write-host "Default Hit"
    }
}    

#Bunch of Global vars
$UrlToUse = identityTest



function sampleTest
{
    write-host "will upload to the following URL: + $UrlToUse"
}

Write-Host $UrlToUse
于 2013-02-22T14:37:48.830 回答