1

blog.commandlinekungfu.comの暗号化スクリプトに基づいたスクリプトに取り組んでいます。基本的に、テキスト ファイル内のすべての文字の頻度を取得したいと考えています。この例では、彼は Here-String を使用して値を格納していますが、私は Get-Content を使用したいと考えています。これが内訳です。

このコードは機能します

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

適切な値を返します。ただし、まったく同じ情報を含むテキスト ファイルがある場合は、null 値が返されます。

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

何も返さない

Here-String が機能するのに Get-Content が機能しない理由を知っている人はいますか?

4

1 に答える 1

2

here 文字列は 1 つの文字列として扱われ、get-content を使用して文字列のコレクションをパイプします。ファイルの内容を Out-String コマンドレットにパイプできます。

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