gpt4 book ai didi

powershell - 在 PowerShell 中使用枚举类型

转载 作者:行者123 更新时间:2023-12-04 16:46:32 25 4
gpt4 key购买 nike

我是 powershell 的新手(消息的预期开始 :))。我无法在这里或其他地方找到我的问题的答案,所以有人可以帮助我吗?

例如,我们想使用一些在 .NET 库中声明的枚举。我们如何在 .NET 中使用它?有点像:

using System.Data.SqlClient;

public class Test {
var x = SortOrder.Ascending;
}

如果我需要在 powershell 中使用它,据我所知,我需要编写如下内容:

$x = [System.Data.SqlClient.SortOrder]::Ascending

所以,问题是,在 powershell 中是否可以像在 C# 中那样使用类似“using”的东西来将语法缩短为:$sortOrder.Ascending[SortOrder ]::升序?

最佳答案

选项 1

将枚举类型存储在变量中:

$so = [System.Data.SqlClient.SortOrder]
$so::Ascending

选项 2

创建自定义 type accelerator (仅针对当前 session ):

[PSObject].Assembly.GetType("System.Management.Automation.TypeAccelerators")::Add("so", "System.Data.SqlClient.SortOrder")
[so]::Ascending

选项 3 (PSv5+)

在 PowerShell v5 中引入:添加一个 using到您的$个人资料:

using namespace System.Data.SqlClient

# in your script:
[SortOrder]::Ascending

选项 4

使用字符串。在大多数情况下(当目标类型已知时,例如对于方法调用、属性分配等)它将被自动识别和转换。

例如,如果您有这种类型:

using System.Data.SqlClient;

namespace Example
{
public class MyClient
{
public SortOrder SortOrder { get; set; }
}
}

你可以简单地这样做:

$myClient = New-Object Example.MyClient
$myClient.SortOrder = "Ascending"

或者对于显式类型变量:

[System.Data.SqlClient.SortOrder]$sortOrder = "Ascending"

它区分大小写,甚至可以接受部分输入,只要它是明确的:

[System.Data.SqlClient.SortOrder]$sortOrder = "asc"

关于powershell - 在 PowerShell 中使用枚举类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53829869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com