2

過去の日付のサブフォルダーでいっぱいのフォルダーがあります(20120601たとえば)。各日付フォルダー内には、という名前のファイルと、というtest.txt名前の別のファイルがありますexample.txttest.txtすべてのファイルを1つにマージするにはどうすればよいですか?

私はこれをWindowsで実行しようとしており、Windows PowerShellとWindowsコマンドプロセッサ(cmd.exe)にアクセスできます。これを行うための最良の方法は何でしょうか?

私の階層は次のようになります。

\Data
     \20120601
           test.txt
           example.txt
     \20120602
           test.txt
           example.txt
     \20120603
           test.txt
           example.txt
     \20120604
           test.txt
           example.txt
     \20120605
           test.txt
           example.txt

こんな感じだと思います

copy *\test.txt alltestfiles.txt

それは可能ですか?ディレクトリにワイルドカードを指定できますか?

4

3 に答える 3

5

実際、かなり簡単です。

Get-ChildItem \Data -Recurse -Include test.txt |
  Get-Content |
  Out-File -Encoding UTF8 alltestfiles.txt

以下:

ls \Data -r -i test.txt | gc | sc -enc UTF8 alltestfile.txt

これにより、最初にすべてのtest.txtファイルが収集され、次にそれらの内容が読み取られ、最後に結合された内容が新しいファイルに書き出されます。

于 2012-07-02T14:18:46.700 に答える
1

すべてのファイルを一覧表示します。1つのファイルの内容を読み取り、結合されたファイルに追加します。そのようです、

cd data
gci -Recurse | ? { -not $_.psIsContainer -and $_.name -like "test.txt"}
$files | % { Add-Content -Path .\AllTests.txt -Value (Get-Content $_.FullName) }
于 2012-07-02T14:14:12.817 に答える
0

のような単純なコマンドcat path\**\* > target_single_fileも機能します。

于 2013-11-11T06:55:42.127 に答える