4

Powershell でスクリプト関数を実行せずにドットソースまたは再利用することは可能ですか? スクリプト自体を実行せずに、スクリプトの機能を再利用しようとしています。関数のみのファイルに関数を分解することはできますが、それを避けようとしています。


ドット ソース ファイルの例:

function doA
{
    Write-Host "DoAMethod"
}

Write-Host "reuseme.ps1 main."

ファイルを使用する例:

. ".\reuseme.ps1"

Write-Host "consume.ps1 main."
doA

実行結果:

reuseme.ps1 main.
consume.ps1 main.
DoAMethod

望ましい結果:

consume.ps1 main.
DoAMethod
4

4 に答える 4

4

コードを再利用する最善の方法は、PowerShell モジュールに関数を配置することです。すべての関数を含むファイルを作成し、拡張子を付けるだけ.psm1です。次に、モジュールをインポートして、すべての機能を使用できるようにします。たとえば、reuseme.psm1次のとおりです。

function doA
{
    Write-Host "DoAMethod"
}

Write-Host "reuseme.ps1 main."

次に、関数のモジュールを使用するスクリプトで、

# If you're using PowerShell 2, you have to set $PSScriptRoot yourself:
# $PSScriptRoot = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition
Import-Module -Name (Join-Path $PSScriptRoot reuseme.psm1 -Resolve)

doA
于 2013-08-01T18:13:47.803 に答える