スクリプト ベースの PowerShell モジュール (.psm1) があり、それをメイン スクリプトにインポートしています。ただし、このモジュールは同じディレクトリ内にあるバッチファイルを呼び出す必要がありますが、明らかにそれを見ることができません。現在、問題の関数は次のようになっています。
function MyFunction
{
& .\myBatch.bat $param1 $param2
}
関数にバッチファイルを表示させるにはどうすればよいですか?
スクリプト ベースの PowerShell モジュール (.psm1) があり、それをメイン スクリプトにインポートしています。ただし、このモジュールは同じディレクトリ内にあるバッチファイルを呼び出す必要がありますが、明らかにそれを見ることができません。現在、問題の関数は次のようになっています。
function MyFunction
{
& .\myBatch.bat $param1 $param2
}
関数にバッチファイルを表示させるにはどうすればよいですか?
.
モジュールが存在するディレクトリではなく、現在の作業ディレクトリです。後者は、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
}
これを試して:
function MyFunction {
& (Join-Path (Split-Path $MyInvocation.MyCommand.Path) 'myBatch.bat') $param1 $param2
}