如何在PowerShell脚本中创建命名空间

Jos*_*itt 11 powershell

我想在PowerShell .ps1脚本或.psm1模块中使用我自己的自定义命名空间.这可能吗?如果是这样,这样做的语法是什么?

我在这里找到了一个相关的链接: 打破全局脚本的Powershell命名空间限制

看起来我需要创建自己的自定义对象,或者可能为此使用自定义关联数组?

我希望能够像这样调用我的函数:

[MyCoolNamespace]::Get-CrazyYall
Run Code Online (Sandbox Code Playgroud)

Jas*_*irk 14

模块名称类似于命名空间.例如:

Microsoft.PowerShell.Core\Get-Command
Run Code Online (Sandbox Code Playgroud)

是相同的

Get-Command
Run Code Online (Sandbox Code Playgroud)

通常,在调用命令(cmdlet,函数或别名)时不使用模块限定名称,但如果确实存在冲突或者想要100%确定是否正在调用您想要的函数,则它会派上用场.


Ans*_*ers 9

使用静态方法创建自定义类型:

PS C:\> Add-Type @'
>> using System;
>> public class MyCoolNamespace {
>>   public static string Foo() {
>>     return "Foo";
>>   }
>> }
>> '@
>>
PS C:\> [MyCoolNamespace]::Foo()
Foo

  • 我不知道有什么方法可以在普通的 PowerShell 中执行此操作。 (2认同)