The Verbose & Debug Piplines & external cmdlets

Welcome Forums General PowerShell Q&A The Verbose & Debug Piplines & external cmdlets

This topic contains 0 replies, has 1 voice, and was last updated by  Forums Archives 7 years ago.

  • Author
  • #5475

    Points: 0
    Rank: Member

    by Eurisko at 2013-01-27 09:02:34

    I still struggle with Scope on Powershell when it relates to variables, what gets passed, and what doesn't.

    What I'm trying to get my head around at the moment is -Verbose & -Debug

    If I invoke Script A with -Debug or -Verbose, and Script A calls 3 different external cmdlets/functions, will those external cmdlets also be run in -debug or -verbose mode? Or do I need to specifiy that in Script A to pass it along if it picks it up as a parameter?

    by DonJ at 2013-01-28 12:39:21

    It depends a bit. When writing an advanced function or script – one with [CmdletBinding()] and a parameter block – I've definitely seen -verbose and -debug "pass through." This has nothing whatsoever to do with scope, though. Not really. Although you could drag scope into it by manipulating $VerbosePreference and $DebugPreference, I suppose.

    by Eurisko at 2013-01-29 06:51:56

    All of my advanced functions I have been writing are all configured with [CmdletBinding()] and a Param block at the top.
    I invoke those functions from a script. I wasn't sure if the script needed to call the the functions with -Verbose, or if calling the script with -Verbose was enough to pass through. Can I configure a script that isn't a function to also support [CmdletBunding()] as well?

    by DonJ at 2013-01-29 07:32:00

    Yup. The attribute is legal in scripts.

    by Eurisko at 2013-01-29 14:33:13

    After a ton of testing, that does seem to be the case as long as I make sure all of my functions support the CmdletBinding feature. Loaded the heck out of my functions with Write-Verbose and Write-Debug output. Works like a champ!

    by DonJ at 2013-01-29 14:38:45

    Right. [CmdletBinding()] is what makes those common parameters all work without you needing to declare them.

The topic ‘The Verbose & Debug Piplines & external cmdlets’ is closed to new replies.