V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
AndyAO
V2EX  ›  问与答

为什么无法使用 VariablesToExport 导出 PowerShell 模块中的变量成员?

  •  1
     
  •   AndyAO · 2021 年 8 月 31 日 · 603 次点击
    这是一个创建于 1679 天前的主题,其中的信息可能已经有所发展或是发生改变。

    How to Write a PowerShell Module Manifest - PowerShell | Microsoft Docs 中了解到,可以使用VariablesToExport = '*',导出模块中的所有变量,但实际使用之后发现无法导出任何变量。通过写脚本测试确认以及阅读更多的文档,都没有发现具体的原因,我可能忽略了某些重要的东西。

    这是怎么回事?

    # TestModule.psm1
    0..9 | ForEach-Object { "v_$_" | New-Variable -Value $_ }
    
    # TestModule.psd1
    @{ModuleVersion = '1.0';VariablesToExport = '*'}
    
    # TestModule.Tests.ps1
    0..9 | ForEach-Object { "variable:v_$_" | Test-Path | Should -BeFalse }
    
    第 1 条附言  ·  2021 年 8 月 31 日

    VariablesToExport项是清单文件中的一种静态导出机制,它在代码文件中的Cmdlet动态导出之上执行拾取操作。默认值为*,表示默认为无二次拣选。

    因为它是在原始导出成员的顶部拾取的,所以单独使用它是无用的。


    还有就是上文的清单模块中不小心漏了 RootModule 项,如果那个没有的话是不会执行模块脚本文件的,这是个错误。但将这个错误修复之后,之前的测试结果仍然是有效的。

    目前尚无回复
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2863 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 03:11 · PVG 11:11 · LAX 20:11 · JFK 23:11
    ♥ Do have faith in what you're doing.