我正在编写一个基于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?
答案 0 :(得分:2)
此字符串被视为一个字符串,其中get-content管道一组字符串。您可以将filoe内容传递给Out-String cmdlet:
(get-content file.txt | out-string | Select-String -AllMatches "[A-Z]").matches