別のディレクトリに存在するファイル名と一致するように、ログディレクトリ内のテキストファイルの内容を検索しようとしています。Powershellを使用してディレクトリ内のリストからファイル名のログを検索
私はGet-ChildItem $Path -file -name
を実行してリストを返すことができます。私はまた、実行する方法を知っていますGet-Content ... | Select-String -Pattern
しかし、私は-Pattern
にファイルリストを供給する方法がわかりません。私は成功せず試した何
:
# Delete all Files in C:\Data\Uploads older than 90 day(s)
$Path = "C:\the_path"
$LogPath = "C:\logs"
Get-Content $LogPath + "\*.log" | Select-String -Pattern (Get-ChildItem $Path -name)
しかし、私は、これは使用可能なパターンの繰り返しではなくを返しているGet-ChildItem
のでちょうど盲目の試みである知っています。
私は何をしようとしているのですか?ファイル名のリストを取得し、それらをログファイルのディレクトリで再帰的に検索しますか?
あなたは 'Get-ChildItem $ Path | Select-Object -ExpandProperty Name'?それはファイル名だけを含む文字列配列を返します。 –
'-SimpleMatch'を' Select-String'に追加するべきでしょう(ファイル名は正規表現ではなくリテラルマッチとして使われます)。あなたが投稿したコードは、あなたが望むことを行うべきであるということ以外は、 –
@Bill_Stewart 'Get-ChildItem'には、' .Name'プロパティの配列を返す '-Name'パラメータがあります。 – TheIncorrigible1