2

ここで何が間違っているのかわかりませんが、以下のコードは次のエラーメッセージを返します。

「identityTest」という用語は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前のスペルを確認するか、パスが含まれている場合は、パスが正しいことを確認してから再試行してください。

ここに私のサンプル/テストコードがあります:

#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 を使用します。私が作成した例では、別の関数内で同じ 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 に答える