2013-04-09 66 views
0

我试图从一个文本框中筛选出一系列名称,并将筛选列表复制到另一个文本框中。我遇到的问题是,当我使用我的add_click按钮时,它只能在几个条件下工作。当我想要在列表中过滤名称(列表的前端或末尾)时,没有结果添加到目标文本框中。如果我添加了一个应该被滤除的项目(假设无意中添加了一个好的名称列表,那么即使是好的名字也被删除了),它也只是将目的地框空白。因此,如果我有5个项目将复制,并且应该过滤掉一个项目,则整个目标框将被删除。当我从文本框列表中删除筛选出的项目时,目标框中将填入这些名称。这些是我正在过滤掉的前缀。筛选多行文本框

$objOutputBox.Text = $logOutputBox.text |?{$_ -notmatch "etc$|^mint|kssc*|mmm|charl"} 

任何想法就是我可以安排这个所以它会过滤掉不需要的机器并添加所需的机器吗?现在,只有当我添加的每个名称都没有过滤掉的预修复或修补后,它才能正常工作。我的推理是试图让它正常工作,过滤掉的名称将被删除,同时点击按钮添加所需的名称。任何帮助表示赞赏。

回答

1

我不确定我是否理解正确。这是很多文字和样本。你应该考虑现在和未来的参考。一张“图片”(样本)胜过千言万语。 :-)你想过滤的名字是由换行符,空格,一个字符来分隔吗?我似乎无法在您的文本中找到。

为了让你开始,Text属性是一个单一的string - 与linebreaks的对象。 Where-object?)通过将当前对象与规则进行匹配来工作。现在,因为Text是一个单一的string-对象,它将通过(它通过了你的测试),或者它们都不会通过。为了解决这个问题,你可以尝试在数组中分割字符串,具体取决于你如何在文本框中分割名字。顺便说一句,当你使用正则表达式进行匹配时,你应该使用单引号,而不是双引号,因为特殊字符。

我希望这给了你一个如何解决它的想法。如果没有,请提供更多样本(例如输入文本框内容),以便我更好地理解它。