2017-08-12 6 views
-1

Windows 10で実行する.batファイルを作成しようとしています。 基本的には、複数の.csvファイルがフォルダ内にあります。ファイル間の改行で.bat内のテキストファイルをマージする

FileA.csv

abc,abc 
def,def 

私はファイルがFileC.csvにマージしたいFileB.csv

ghi,ghi 
jkl,jkl 

は次のようにフォーマットされました。

abc,abc 
def,def 
ghi,ghi 
jkl,jkl 

私が使用している場合:

copy /b *.csv FileC.csv 

私はFileC.csvでこの出力を得る:

abc,abc 
def,defghi,ghi 
jkl,jkl 

私がマージされたファイルの間に改行を追加する必要がなく、把握することはできませんどうやって。どんな助けもありがとう。 existigファイル

  • echo.に出力を追加しますファイル
  • >>C.csvの内容を表示します

  • 答えて

    0
    type A.csv >> C.csv 
    echo. >> C.csv 
    type B.csv >> C.csv 
    
    1. タイプは、空行を出力します

    UPD

    FOR %f IN (*.csv) DO type %f >> ..\newfile.csv & echo. >> ..\newfile.csv 
    

    これは(その新しいファイルが同じフォルダになります場合は、あまりにも、そのファイルをマージするために、後の最初の反復を作成し、)これは休憩を挿入しますCMDウィンドウで

    +0

    ありがとうバッチでは、これは私が望んでいたまさにでした。各* .csvファイルをフォルダ内で実行する方法はありますか、マージしたい各ファイルを明示的にリストする必要はありますか? –

    +0

    ようこそ。更新された回答。私の答えがあなたの望むものなら、upvoteして答えを受け入れる。 – tso

    +0

    OKこれは、作成されたファイルの終わりに改行があることを除いて、素晴らしいことです。それをどうやって削除するのですか? –

    0

    親フォルダに新しい.csvファイル内のすべての.csvのファイルをマージします空行を削除します。

    (for /f "delims=" %A in ('Type FileA.csv^&Echo:^&Type FileB.csv') Do @Echo %A)>FileC.csv 
    

    @Echo off 
    (for /f "delims=" %%A in (
        'Type fileA.csv^&Echo:^&Type FileB.csv' 
    ) Do @Echo:%%A 
    ) > FileC.csv 
    
    +0

    私はそれを試みました、そして、それはまだ作成されたファイルの最後に空白の行を残します –

    関連する問題