1

我正在研究基于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 无效?

4

1 回答 1

2

这里的字符串被视为一个字符串,使用 get-content 管道传递一组字符串。您可以将 filoe 内容通过管道传输到 Out-String cmdlet:

(get-content file.txt | out-string | Select-String -AllMatches "[A-Z]").matches
于 2012-05-01T17:15:20.277 回答