0

我已经回到这个片段 powershell 代码有一段时间了,我似乎找不到解决方案。基本上,我在 WinForm 中有一个文本框,我在文本框中输入名称,如 ckcTsetg、minintKLV、bbcada、tyleass 等。当我将它们放入文本框中时,我单击此过滤按钮,然后过滤掉以下正确的“ckcTsetg,minintKLV”。我遇到的问题是其他不被过滤掉的东西也被删除了,或者它们永远不会到达。当我单击过滤器按钮时,我的目标是过滤掉“$logOutputBox.TEXT”中的文本,然后过滤后的列表将通过 $objOutputBox.TEXT = $Numbered 传递给另一个框“$objOutputBox.TEXT”。相反,它完全过滤了整个列表.. 如果我事先获取有效名称,它们将被传递给“$objOutputBox.TEXT”,没问题。我尝试了一些不同的东西,但似乎没有任何效果。有任何想法吗?谢谢你的帮助!

$repeatButton = New-Object System.Windows.Forms.Button
$repeatButton.Location = New-Object System.Drawing.Size(310,375)
$repeatButton.Size = New-Object System.Drawing.Size(160,43)
$repeatButton.Font = New-Object System.Drawing.Font("Courier New", "10")
$repeatButton.Text = "Filter"
$repeatButton.Add_Click({


$Filtered = $logOutputBox.TEXT
$Numbered = $Filtered.Split("' ")| ? {$_ -notmatch "etg$|^minint|kvmlc*|dsm|les"}
$objOutputBox.TEXT = $Numbered



}) 
$tunerForm.Controls.Add($repeatButton)
4

1 回答 1

0

我找到了我的问题的答案。谢谢,如果您开始研究我的问题,我仍然非常感谢。如果您不介意并且确实回答了问题,请继续发布。可能有更好的方法,我真的只是想学习..

$Numbered = $Filtered.Split("`n ", [System.StringSplitOptions]::RemoveEmptyEntries) | ? {$_ -notmatch "etg$|^minint|kvmlc*|dsm|les"}
于 2013-04-23T23:37:55.400 回答