在PowerShell中将字符串转换为int数组

Imp*_*qui 5 powershell

我正在尝试转换一个看起来像这样的字符串,

    2,3,4,5,6,20..30
Run Code Online (Sandbox Code Playgroud)

到整数数组。这是我目前拥有的代码:

[string]$a = "2,3,4,5,6,7"
[array]$b = $a.split(",")
[array]$c = foreach($number in $b) {([int]::parse($number))}
Run Code Online (Sandbox Code Playgroud)

哪个有效,但不适用于20..30的范围。我该如何工作?

CB.*_*CB. 7

一句(只是为了好玩):

$c = "2,3,4,5,6,7,10..30".split(',') | % {iex $_}
Run Code Online (Sandbox Code Playgroud)


Tre*_*van 6

如果方法调用失败,您可以使用Invoke-Expressioncmdlet 来解释该10..30[int]::Parse()

这是一个完整的工作示例。

[string]$a = "2,3,4,5,6,7,10..30";
[array]$b = $a.split(",");
[array]$c = foreach($number in $b) {
    try {
        [int]::parse($number)
    }
    catch {
        Invoke-Expression -Command $number;
    }
    }

$c;
Run Code Online (Sandbox Code Playgroud)