代码之家  ›  专栏  ›  技术社区  ›  Samselvaprabu

如何在powershell中提及所有函数调用的详细信息?

  •  2
  • Samselvaprabu  · 技术社区  · 7 年前

    我在一个模块中编写了许多powershell函数。 每个函数都有写详细信息。

    对于ex:

    function fun1{
      # code
      Write-verbose "Useful information from fun1"
    }
    
    function fun2{
      # code
      Write-verbose "Useful information from fun2"
    }
    

    现在,当我使用该函数时,我必须为每个函数调用提到verbose。

    fun1 -params <paramvalue> -verbose
    fun2 -params <paramvalue> -verbose
    

    是否有任何方法可以全局提及所有函数的详细信息?因此,我不必为每个函数提及详细信息。

    3 回复  |  直到 7 年前
        1
  •  2
  •   colsw    7 年前

    正确答案是添加

    $VerbosePreference = 'Continue'
    

    然后将其设置回

    $VerbosePreference = 'SilentlyContinue'
    

    之后

    但是,如果此信息是您默认需要的信息,您可能只想将其更改为 write-host write-output

        2
  •  1
  •   briantist    7 年前

    另一种可能性是添加 -Verbose 在…上 Write-Verbose :

    Write-verbose "Useful information from fun1" -Verbose
    

    这样做不会给调用方任何不查看信息的选项,但它将转到详细流,而不是stdout或主机,因此如果这是您想要的,那么这可能很有用。

        3
  •  1
  •   Sambardo    7 年前

    要扩展其他两个答案,如果希望它们对您默认为verbose,但对其他人不默认为verbose,则可以使用 $PSDefaultParameterValues["Myfunction2:verbose"] = $true 在您的个人资料中