1

スクリプト ベースの PowerShell モジュール (.psm1) があり、それをメイン スクリプトにインポートしています。ただし、このモジュールは同じディレクトリ内にあるバッチファイルを呼び出す必要がありますが、明らかにそれを見ることができません。現在、問題の関数は次のようになっています。

function MyFunction
{
    & .\myBatch.bat $param1 $param2
}

関数にバッチファイルを表示させるにはどうすればよいですか?

4

2 に答える 2

3

.モジュールが存在するディレクトリではなく、現在の作業ディレクトリです。後者は、MyInvocation変数を介して決定できます。関数を次のように変更します。

function MyFunction {
  $Invocation = (Get-Variable MyInvocation -Scope 1).Value
  $dir = Split-Path $Invocation.MyCommand.Path
  $cmd = Join-Path $dir "myBatch.bat"
  & $cmd $param1 $param2
}
于 2013-07-11T15:46:52.023 に答える
1

これを試して:

function MyFunction {
  & (Join-Path (Split-Path $MyInvocation.MyCommand.Path) 'myBatch.bat') $param1 $param2
}
于 2013-07-11T16:52:53.133 に答える