您可以将变量作为参数传递给Powershell的Select-String

时间:2015-08-05 22:25:03

标签: string powershell

我有一个多行字符串,我想用' Select-String'

过滤
echo $foo
bar
buzz

如果我使用带字符串参数的select-string,它可以正常工作

echo $foo | Select-String 'bar'
bar

如果我尝试用变量替换字符串选择,则不返回任何内容。

$variable = 'bar'
echo $foo | Select-String $variable

如何将变量传递给Select-String?

以下是我尝试的每种语法

echo $foo | Select-String $variable
echo $foo | Select-String "$variable"
echo $foo | Select-String "$(variable)"
echo $foo | Select-String "$($variable)"
echo $foo | Select-String $($variable)

$ variable是一个字符串

$variable.getType()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String                                   System.Object

1 个答案:

答案 0 :(得分:0)

使用变量对我有用:

> $needle = 'Import' ; @( 'fu', 'bar', 'Import' ) | Select-String $needle

Import

检查$foo是否实际包含$variable中的值。检查您是否实际将某些内容传递给Select-String(有时我忘记键入|字符)。验证您的所有假设。