相关疑难解决方法(0)

在PowerShell模块中忽略了Write-Verbose

我希望Write-Verbose在脚本和函数中使用命令行开关.它在脚本(.ps1)文件中按预期工作,但在模块(.psm1)文件中不起作用 - 在模块中忽略命令行开关.

运行以下脚本:

PS> .\scaffold.ps1 -verbose
Run Code Online (Sandbox Code Playgroud)

生产:

VERBOSE: starting foo
path: c:\bar.txt
[missing entry here - 'verbose path: c:\bar.txt']
VERBOSE: ending foo
Run Code Online (Sandbox Code Playgroud)

scaffold.ps1:

[cmdletbinding()]
param()

import-module Common -force

write-verbose "starting foo"

foo "c:\bar.txt"

write-verbose "ending foo"
Run Code Online (Sandbox Code Playgroud)

Common.psm1:

function foo {

  [cmdletbinding()]
  Param(
    [string]$path
  )

  write-host "path: $path"
  write-verbose "verbose path: $path"

}
Run Code Online (Sandbox Code Playgroud)

此时我没有将清单(.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 …
Run Code Online (Sandbox Code Playgroud)

powershell powershell-2.0

10
推荐指数
3
解决办法
8023
查看次数

标签 统计

powershell ×1

powershell-2.0 ×1