2

myfunc.ps1ファイル内にPowerShell関数があります

function Set-Util ($utilPath ) {

    if(Test-Path($utilPath) ){
      $fullPath = Join-Path -Path $utilPath "util.exe"
      set-alias MyUtil $fullPath
      #echo  "Path set to $fullPath"
    }else {
        throw  (" Error: File not found! File path '$fullPath' does not exist.")
    }
}

コマンドラインからドットコールします

。。\myfunc.ps1

その後、電話

Set-Utilsomedirectory

関数でエイリアスが正しく設定されていますが、ここからアクセスできません

MyUtil

スコープはメソッド内にのみあるため、エイリアスをエクスポートする必要がありますか?Export-ModuleMemberでこれを実行しようとしましたが、コマンドレットはモジュールのinsdieからのみ呼び出すことができるというエラーが発生しました。

4

2 に答える 2

8

関数が呼び出されるまでエイリアスは設定されず、関数が呼び出されるとエイリアスは関数スコープにスコープされるため、これを行うことはできません。したがって、関数の実行が終了すると、エイリアスはなくなります。

エイリアスを存続させたい場合は、値が「global」のusescopeパラメーターを指定します。

于 2012-12-01T14:06:58.780 に答える
-3

エイリアスはコマンドレットのみを指すことができ、コマンドレット(オブジェクト)の出力を指すことはできません。

于 2012-12-01T13:10:43.903 に答える