输入数据:
(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]
}
输出:
0 1 Pedro Del Mar & Beatsole - Pianophoria (Original Mix) New World - Ushio (Original Mix)
问题:
我创建了一个过滤掉文本文件中数据的脚本。它从轨道中删除HTTP链接和时间。然后它将字符串添加到数组列表
为什么打印数组列表会生成0,1
?我该如何防止这种情况发生?
答案 0 :(得分:11)
ArrayList.Add
方法始终返回您添加的新项目的索引:
PS > $ArrayList = New-Object System.Collections.ArrayList
PS > $ArrayList.Add('a')
0
PS > $ArrayList.Add('b')
1
PS >
您可以通过转换为[void]
来抑制此输出:
PS > $ArrayList = New-Object System.Collections.ArrayList
PS > [void]$ArrayList.Add('a')
PS >
或将输出重定向到$null
:
PS > $ArrayList = New-Object System.Collections.ArrayList
PS > $ArrayList.Add('a') > $null
PS >
答案 1 :(得分:4)
ArrayList.Add()返回添加值的索引。通过重定向到$ null或转换为[void]
来删除此输出。
$ArrayList.Add($subString) > $null
或
[void]$ArrayList.Add($subString)