ArrayList打印数字

3 powershell arraylist

输入数据:

(00:00) Pedro Del Mar & Beatsole - Pianophoria (Original Mix)
 http://goo.gl/L6jAk1 
 [Black Hole Recordings]

03:01 New World - Ushio (Original Mix) 
http://goo.gl/MQyTq7 
[Abora Recordings]

Powershell代码:

$readData = Get-Content "C:\Users\SomeUser\inputData - Alternate - 2.txt"
$ArrayList = New-Object System.Collections.ArrayList


function removeBrackets([string]$removeBrackets){


if($removeBrackets.Contains(":") -and ($removeBrackets.IndexOf(":")  -eq 2)){
           $subString = $removeBrackets.Substring(7-1);
           $ArrayList.Add($subString)


  }
elseif($removeBrackets.Contains(":") -and ($removeBrackets.IndexOf(":")  -eq 3)){ 
         $subString = $removeBrackets.Substring(7+1);
         $ArrayList.Add($subString)

     }

}

for($i=0; $i -le $readData.Length; $i++){


     removeBrackets($readData[$i])


}

for($a=0; $a -le $ArrayList.Count; $a++){

   Write-Output $ArrayList[$a]
}
Run Code Online (Sandbox Code Playgroud)

输出:

0
1
Pedro Del Mar & Beatsole - Pianophoria (Original Mix)
New World - Ushio (Original Mix)

问题:

我创建了一个过滤掉文本文件中数据的脚本.它从轨道中删除HTTP链接和时间.然后它将字符串添加到数组列表

为什么打印数组列表产生0,1?我该如何防止这种情况发生?

iCo*_*dez 12

ArrayList.Add方法始终返回您添加的新项的索引:

PS > $ArrayList = New-Object System.Collections.ArrayList
PS > $ArrayList.Add('a')
0
PS > $ArrayList.Add('b')
1
PS >
Run Code Online (Sandbox Code Playgroud)

您可以通过强制转换为[void]:来抑制此输出:

PS > $ArrayList = New-Object System.Collections.ArrayList
PS > [void]$ArrayList.Add('a')
PS >
Run Code Online (Sandbox Code Playgroud)

或者通过将输出重定向到$null:

PS > $ArrayList = New-Object System.Collections.ArrayList
PS > $ArrayList.Add('a') > $null
PS > 
Run Code Online (Sandbox Code Playgroud)


Kei*_*ill 5

ArrayList.Add() 返回添加值的索引。通过重定向到 $null 或转换为[void].

$ArrayList.Add($subString) > $null
Run Code Online (Sandbox Code Playgroud)

或者

[void]$ArrayList.Add($subString)
Run Code Online (Sandbox Code Playgroud)