在PowerShell中搜索颜色字符串
问题描述:
我有一个PowerShell代码。如何搜索RichTextBox
中具有特定颜色格式的字符?或者任何颜色?在PowerShell中搜索颜色字符串
比方说红色背景。我已经突出了文字的某些部分,并希望找到这些字符。
当前,我只搜索文本。我的代码示例:
Function example-search {
$index = $resultbox.Find($SearchText, $resultbox.SelectionStart + $resultbox.SelectedText.length, [System.Windows.forms.RichtextBoxFinds]::None)
if($index -ge 0)
{
$resultbox.select($index, $searchText.length)
$resultbox.ScrollToCaret()
}
else
{
$index = $resultbox.Find($SearchText, 0, $resultbox.SelectionStart ,
[System.Windows.forms.RichtextBoxFinds]::None)
}
if($index -ge 0)
{
$resultbox.select($index, $searchText.length)
$resultbox.ScrollToCaret()
}
else
{
$resultbox.SelectionStart = 0
}
}
答
这里是一个办法做到这一点,它经过在richbox并检查颜色名字中每个字。你可以把它重新安排你的需求
function SearchByColor
{
param ([string]$color)
$result = for ($i = 0; $i -lt $resultbox.TextLength; $i++)
{
$resultbox.Select($i, 1)
if ($resultbox.SelectionColor.Name -eq $color)
{
$resultbox.SelectedText
}
}
$result -join ''
}
要使用它:
SearchByColor Red
米奇你好,谢谢你的例子,但是这并不为我工作。搜索遍历文本并且没有找到任何彩色文本。我可以同时使用SelectionColor.Name或SelectionBackColor.Name ... – Daniel
您需要使用字符串版本的颜色名称,例如“红色”或“蓝色”。你使用哪种颜色进行搜索,我可以看到我是否可以在这里重现它。 –