I'm hoping to use the Write-Verbose
commandlet in scripts and functions. It works as expected in script (.ps1) files, but not in module (.psm1) files--the commandlet is ignored in modules.
Running the following script:
PS> .\scaffold.ps1 -verbose
Produces:
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"
}
I haven't associated a manifest (.psd1) with the module (.psm1) at this point.
Is there a module-specific syntax that I need to use?
** edit **
What I need is a way to determine if the -verbose
flag has been set on the .PS1 file so I can pass it to the .PSM1 file.
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"