1. ホーム
  2. function

[解決済み] オプションの呼び出し変数を持つ関数を作成する

2022-03-13 01:31:42

質問

PowerShell関数でパラメータを作成し、それを考慮させるために呼び出さなければならない方法はありますか?

コマンドレットで示された例(太字は私がやりたいこと)。

Invoke-Command -computername Server01 -Scriptblock {...}

以下は、この関数でやりたいことの例です。

Function DoStuff($computername, -arg2, -domain $domain)
    Test-parameter(-domain) if (-domain -eq $true) {
        use $domain
    }
    Else {
        $domain = "Domain1"
    }
    test-parameter($arg2) {
        if ($arg2 -eq $true) {
            Do something
        }
        else {
            Do the opposite
        }
    }

では、まとめます。

もし、"-arg2"が存在するなら、スクリプトで何かを起こしたい。もし、"-Domain"が存在し、それに引数がある場合、セット引数ではなく、それを使って欲しいのです。

解決方法は?

Powershellは、必須パラメータ、オプションパラメータ、スイッチパラメータ、パラメータセットなど、一般的なパラメータシナリオをサポートする多くのビルトイン機能を提供します。

デフォルトでは、すべてのパラメータはオプションです。 最も基本的な方法は、単純にそれぞれのパラメータに $null そして、そこから好きなロジックを実装してください。 これは基本的に、あなたのサンプルコードで既に示されていることです。

Powershellが提供する特別なサポートについて学びたい場合は、以下のリンクを参照してください。

関数について

機能詳細について

約_機能_高度なパラメータ