.log ファイルを含む約 30 のディレクトリがあります。各フォルダーに移動し、サブディレクトリ内のすべてのファイルのテキストを個別に結合したいと考えています。すべてのサブディレクトリ内のすべてのファイルのテキストを結合したくありません。
例
Machines というディレクトリがあります
Machines\
私が持っている
Machine2\
Machine3\
Machine4\
各Machine*
フォルダー内には、次のものがあります。
1.log
2.log
3.log
etc..
次のようなスクリプトを作成したいと思います。
1 つ目: ディレクトリに移動し、Machine2
そのディレクトリ内のすべてのテキスト ファイルのテキストを結合します。2 つ目: ディレクトリに移動し、そのMachine3
ディレクトリ内のすべてのテキスト ファイルのテキストを結合します。
フォルダーが 1 つしかない場合は以下を使用できますが、いくつかのサブフォルダーをループする必要があるため、以下のコマンドでサブディレクトリを入力する必要はありません。
Get-ChildItem -path "W:\Machines\Machine2" -recurse |?{ ! $_.PSIsContainer } |?{($_.name).contains(".log")} | %{ Out-File -filepath c:\machine1.txt -inputobject (get-content $_.fullname) -Append}