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

在PowerShell中导入类似“import<module>as<alias>”的模块

  •  2
  • bjd2385  · 技术社区  · 6 年前

    ArrayList<>

    ...
    import java.util.ArrayList
    ...
    

    ArrayList<String> arr = new ArrayList<String>...

    from numpy.random import randint
    

    再说一次,在我的程序里,我可以写 randint(something)

    在PowerShell中是否有类似的方法可以做到这一点?我想用一个 System.Collections.ArrayList

    4 回复  |  直到 6 年前
        1
  •  3
  •   laika    6 年前

    using namespace statement 以下内容:

    using namespace System.Collections
    

    $arr = New-Object ArrayList
    
        2
  •  1
  •   Manu    6 年前

    New-Object 对于 System.Collections.ArrayList

    $arr= New-Object System.Collections.ArrayList
    

    New-Object cmdlet创建.NET框架或COM的实例

    ArrayList

    $arr.Add('test')
    
        3
  •  1
  •   EBGreen    6 年前

    我把这个扔进去只是为了好玩。首先,创建一个函数:

    function New-ArrayList{
        New-Object System.Collections.ArrayList
    }
    

    New-Alias -Name al -Value New-ArrayList
    

    $myArrayList = al
    
        4
  •  1
  •   boxdog    6 年前

    最好的选择可能是@laika提供的,但是您也可以使用 Type Accelerators int ,请 string DateTime System.Management.ManagementObject

    [PsObject].Assembly.GetType("System.Management.Automation.TypeAccelerators")::Get
    

    [PsObject].Assembly.GetType("System.Management.Automation.TypeAccelerators")::Add('ArrayList',"System.Collections.ArrayList")
    

    然后您可以像这样使用新的加速器:

    $arrayList = New-Object ArrayList
    
    $arrayList.Add(1)
    $arrayList.Add(2)
    $arrayList.Add(3)
    
    $arrayList
    1
    2
    3