Write-Verbose
コマンドレットをスクリプトと関数で使用したいと考えています。スクリプト (.ps1) ファイルでは期待どおりに機能しますが、モジュール (.psm1) ファイルでは機能しません。コマンドレットはモジュールでは無視されます。
次のスクリプトを実行します。
PS> .\scaffold.ps1 -verbose
プロデュース:
VERBOSE: starting foo
path: c:\bar.txt
[missing entry here - 'verbose path: c:\bar.txt']
VERBOSE: ending foo
scaffold.ps1:
[cmdletbinding()]
param()
import-module Common -force
write-verbose "starting foo"
foo "c:\bar.txt"
write-verbose "ending foo"
Common.psm1:
function foo {
[cmdletbinding()]
Param(
[string]$path
)
write-host "path: $path"
write-verbose "verbose path: $path"
}
この時点では、マニフェスト (.psd1) をモジュール (.psm1) に関連付けていません。
使用する必要があるモジュール固有の構文はありますか?
** 編集 **
必要なのは、-verbose
フラグが .PS1 ファイルに設定されているかどうかを判断して、フラグを .PSM1 ファイルに渡す方法です。
scaffold.ps1:
[cmdletbinding()]
param()
import-module Common -force
write-verbose "starting foo"
foo "c:\bar.txt" $verbose_flag # pass verbose setting to module based on what was set on the script itself
write-verbose "ending foo"