powershell中的.matches没有返回任何结果

时间:2012-05-01 15:29:48

标签: powershell

我正在编写一个基于blog.commandlinekungfu.com上的加密脚本的脚本。基本上我想得到文本文件中所有字母的频率。在示例中,他使用Here-String来存储值,但我想使用Get-Content。这是故障。

此代码有效

PS c:\$foobar = @"
                  foo
                  bar
                "@
PS c:\$foobar | Select-String -AllMatches "[A-Z]").matches 

它返回适当的值。但是,如果我有一个包含完全相同信息的文本文件,我会返回一个空值。

PS c:\$text = Get-Content "foobar.txt"
PS c:\$text | Select-String -AllMatches "[A-Z]").matches

什么都不返回

有谁知道为什么Here-String有效但不是Get-Content?

1 个答案:

答案 0 :(得分:2)

此字符串被视为一个字符串,其中get-content管道一组字符串。您可以将filoe内容传递给Out-String cmdlet:

(get-content file.txt | out-string | Select-String -AllMatches "[A-Z]").matches