web-dev-qa-db-ja.com

ディレクトリ内の多くのファイルを結合する必要がある

定期的に1つのファイルに連結する必要があるディレクトリに50〜60個のファイルがあります。

Notepad ++を使用して、おそらく役立つプラグインがあるかもしれないが、見つけられなかったと考えて考えました。

他に考えはありますか?

41
tnriverfish

これらはテキストファイルであり(notepad ++を使用しているため)、Windowsを使用していると仮定すると、単純なバッチスクリプトを作成してそれらを連結できます。

たとえば、すべてのテキストファイルがあるディレクトリで、次を実行します。

for %f in (*.txt) do type "%f" >> combined.txt

これにより、*。txtに一致するすべてのファイルが結合され、combined.txtという1つのファイルになります。

詳細については:

http://www.howtogeek.com/howto/keyboard-ninja/keyboard-ninja-concatenate-multiple-text-files-in-windows/

83
JYelton

Windowsの「コピー」コマンドを使用します。

C:\Users\dan>help copy
    Copies one or more files to another location.

    COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B ] source [/A | /B]
         [+ source [/A | /B] [+ ...]] [destination [/A | /B]]

      source       Specifies the file or files to be copied.
      /A           Indicates an ASCII text file.
      /B           Indicates a binary file.
      /D           Allow the destination file to be created decrypted
      destination  Specifies the directory and/or filename for the new file(s).
      /V           Verifies that new files are written correctly.
      /N           Uses short filename, if available, when copying a file with 
                   a non-8dot3 name.
      /Y           Suppresses prompting to confirm you want to overwrite an
                   existing destination file.
      /-Y          Causes prompting to confirm you want to overwrite an
                   existing destination file.
      /Z           Copies networked files in restartable mode.
      /L           If the source is a symbolic link, copy the link to the 
                   target
                   instead of the actual file the source link points to.

    The switch /Y may be preset in the COPYCMD environment variable.
    This may be overridden with /-Y on the command line.  Default is
    to Prompt on overwrites unless COPY command is being executed from
    within a batch script.

    **To append files, specify a single file for destination, but 
    multiple files for source (using wildcards or file1+file2+file3 
    format).**

あなたの場合:

コピー* .txt destination.txt

すべての.txtファイルをアルファベット順でdestination.txtに連結します

聞いてくれてありがとう、新しいことを学んだ!

64
dwerner
copy *.txt all.txt

これにより、フォルダーのすべてのテキストファイルが1つのテキストファイルall.txtに連結されます。

SQLファイルなど、他の種類のファイルがある場合

copy *.sql all.sql
11
abhishek

はい、notepad ++。Linkの「combine」という名前のプラグインを利用できます。>> Notepad ++のプラグインを結合

プラグインマネージャー経由でインストールできます。このプラグインの追加の利点は、「マージ中にファイルのシーケンスを維持でき、開かれたファイルのシーケンスに従っていることです(タブを参照)」。

6

Notepad ++で開いているファイルに対してこれを行うには、Combineプラグインを使用できます。 http://www.scout-soft.com/combine/

1
vahid kh

このようなPowerShellスクリプトを使用できます

$sb = new-object System.Text.StringBuilder

foreach ($file in Get-ChildItem -path 'C:\temp\xx\') {
    $content = Get-Content -Path $file.fullname
    $sb.Append($content)
}
Out-File -FilePath 'C:\temp\xx\c.txt' -InputObject $sb.toString()
1
Iain

Windowsでは、バッチファイルで簡単なコマンドを使用し、スケジュールされたタスクを使用してすべての情報を1つのファイルにのみ保持します。結果ファイルへの別のパスを選択してください。そうしないと、データが重複します。

タイプ PathToOriginalFiles\*。Extension > AnotherPathToResultFile\NameOfTheResultFile.Extension

多くのcsvファイルを結合する必要がある場合は、header.csvなどの名前の1つのファイルにのみヘッダーを含めるか、または他の名前にすることをお勧めします。リストの最初のファイル、およびヘッダーを含まないように他のすべてのcsvファイルをプログラムしてください。

1
Pedro Oliveira

Windows PowerShellでこのスクリプトを使用しました。

ForEach ($f in get-ChildItem *.sql) { type "$f" >> all.sql }
0
asoifer1879

FileMenu Toolsという便利なサードパーティツールがあります。これは、Windows Explorerの拡張機能としていくつかの右クリックツールを提供します。

そのうちの1つはSplit file/Join Partsです。まさにあなたが探しているもの。

http://www.lopesoft.com/en/filemenutools で確認してください。もちろん、Unix環境には既に多くのツールが用意されているため、これはWindowsのみです。

0
PPC

私はこれが古い投稿であることを知っていますが、それを見つけて、Total Mail Converterを提案した人を見つけました。 2kの.msgファイルを含むフォルダーを.txtに変換できました。また、PDFおよび他の一般的な形式に変換できます。

それは数日を節約できるので、誰かが提案してくれてうれしい素晴らしいツールです。

参考までに、私のプロジェクトは.msgファイルを1つのテキストファイルに結合しているので、スクリプトを実行してファイルから特定の情報(電子メールやリンクなど)を抽出できます。 2kファイルの代わりに、1つで作業できます。

0
Osensnolf