Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PowerShell中将字符串转换为int数组_Powershell - Fatal编程技术网

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

在PowerShell中将字符串转换为int数组,powershell,Powershell,我正试图转换一个如下所示的字符串 2,3,4,5,6,20..30 一个整数数组。以下是我目前拥有的代码: [string]$a = "2,3,4,5,6,7" [array]$b = $a.split(",") [array]$c = foreach($number in $b) {([int]::parse($number))} 这是可行的,但不适用于20..30的范围。如何使该部件工作?在字符串中,您的。按原样处理,不扩展到某个范围 所以$a=“1..5”实际上是1。。5,而不

我正试图转换一个如下所示的字符串

    2,3,4,5,6,20..30
一个整数数组。以下是我目前拥有的代码:

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

这是可行的,但不适用于20..30的范围。如何使该部件工作?

在字符串中,您的
按原样处理,不扩展到某个范围

所以$a=“1..5”实际上是1。。5,而不是1,2,3,4,5


要使程序正常工作,您不仅必须在
上标记,而且还必须在
上标记,然后进行扩展。

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

这是一个完整的工作示例

[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;
一行(只是为了好玩):


做得好,但如果不看特雷弗的代码和解释,我就无法理解你在这里做什么@不可能的谢谢,但我真诚地希望您不要使用在不必要时生成异常的代码;)我不能对一行程序说不…在试用了你的两个代码之后,我最终使用了你的代码,因为它很简单。再次感谢@我很乐意帮忙!您可以随时更改选择答案;)如果字符串不包含逗号-split仍然使用一个元素作为数组-就可以了。但在转换成数字后,它使Int32变量不是数组:(谢谢,这就是我要找的!@impossible Squi不客气-我很高兴这有帮助!
$c = "2,3,4,5,6,7,10..30".split(',') | % {iex $_}