• 締切済み

テキストファイル連結のDOSコマンドについて

テキストファイル連結のDOSコマンドについて あるフォルダに下記の様なテキストファイル群があります a.txt、b.txt、c.txt、d.txt・・・・ これらをすべて連結するには copy *.txt all.txt とすればいいのですが、一つ一つのファイルの区切りに目に「■■■■■■■■■■■■■■■」のような区切り文字を入れたいのですが何らかの方法はありますでしょうか?

みんなの回答

  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.2

#1 です。 >最後の一行どういう命令か全く理解できていませんw 締め切っていないので説明しておきますね。 >REM 各テキストファイルの末尾行に区切り文字を加えてマージ >FOR /F "usebackq delims==" %%i IN (`dir /b *.txt`) DO @type %%i>>all.txt & echo %delim%>>all.txt FOR /F "usebackq delims==" %%i IN (`コマンド1`) DO コマンド2 %%i これは「コマンド1の実行結果分、DO以下のコマンド2を繰り返す」と言う意味です。 %%i にはコマンド1の結果が入ります。 今回の場合、コマンド1は dir /b *.txt なので、dirコマンドで取得したテキストファイルの「名前だけ」が %%i に入ります。 1ファイルだけなら1回だけDO以下のコマンド2を処理するし、複数ファイルあるなら、そのファイル数分、繰り返しDO以下のコマンド2を処理します。 DO以下ののコマンド2 type %%i>>all.txt & echo %delim%>>all.txt は 「%%i(dir結果のテキストファイル)をall.txtの末尾に追記、その後で更に、%delim%(区切り文字が入った変数)をall.txtの末尾に追記」と言う意味です。

全文を見る
すると、全ての回答が全文表示されます。
  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.1

ファイル名やファイル数が、常に固定であれば、「■■■■■■■■■■■■■■■」が1行だけ格納されているファイル delim.txt を作っておいて、 copy a.txt + delim.txt + b.txt + delim.txt ...(中略)... all.txt で、できます。 この場合、コマンドを生成しないといけないので、ファイルが沢山ある場合は面倒ですけど。 ファイル数、ファイル名が不定の場合は、以下のようなバッチファイルを同じフォルダにおいて実行すれば行けると思います。 (まあ、常にこっちを使えばよいわけですが。。。) 「REM *****..」以下の行をコピーして、addDelimMerge.bat と言うファイルを作成してください。 最後のFOR文は1行です。回答が折り返していたら1行に修正して使用してください。 以下、バッチファイルの中身です。 REM ****************************************************** @echo off REM バッチ名:addDelimMerge.bat REM 機能:各テキストの末尾行に区切り文字を加えてマージする REM ****************************************************** REM 区切り文字の変数 set delim=■■■■■■■■■■■■■■■ REM 前回のall.txtを消しておく del all.txt REM 各テキストファイルの末尾行に区切り文字を加えてマージ FOR /F "usebackq delims==" %%i IN (`dir /b *.txt`) DO @type %%i>>all.txt & echo %delim%>>all.txt

umaiboubokki
質問者

お礼

最初はデスクトップにbatファイルを作成実行していたために動作せず。それにやっと気付きcd命令を付加して実行。all.txtができたと喜んだのも束の間で、連結は正常に出来ているのですが区切り文字が挿入されていませんでした。 調べたところ、テキストファイルは文字コードがUTF-8であり、コマンドで付加した文字はシフトJISで、UTF-8では何も表示されなかったようです。とりあえず区切り文字をアスキーの「----------」に変更しましたところ正常に出来ました(*⌒▽⌒*) しかしコマンドプロンプトもとても奥が深いのですね。目的は達したはいいのですが、最後の一行どういう命令か全く理解できていませんwこれを気にもう少し勉強したいと思います。本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • DOSコマンド COPY(複数ファイルをまとめる)

    DOSコマンドで、複数ファイルをまとめるのに COPYコマンドを使用しています。 まとめたファイル上にコメント文を加えたいのですが どうすればできるのでしょうか? 下記は、a.txtとb.txtをまとめて、c.txtにしています。 copy a.txt + b.txt c.txt だと、 そのままデータがつながってしまい、コメント文を 入れることができません。 [a.txt] aaa [b.txt] bbb  ↓ [c.txt] "Input A.txt" aaa "Input B.txt" bbb

  • DOSプロンプト:一番速く10万テキストファイルを結合できる方法を教えてください。

    DOSプロンプト:一番速く10万テキストファイルを結合できる方法を教えてください。テキストのファイル名は、000001.txt,000002.txt…となっています。単純にcopy 000001.txt+000002.txt+…とすると文字数オーバー?なのか処理がとまってしまいます。

  • txtファイルを連結して一つのファイルにする方法

    毎々お世話になっております。さうなまんです。 複数あるtxtファイルの中身を一つに連結して 一個のテキストファイルにするための DOSコマンドを探しております。 よく探したつもりですが、、、困っております。 毎回、フォルダ内のtxtを開いては印刷というのが 面倒でバッチファイルをつくりたいのです。 環境はWinXP proです。 お手数おかけしますが、なにとぞよろしくお願い いたします。

  • DOSコマンドについて

    教えてください。 DOSコマンドでコピーするバッチファイルを作っています。 主な目的はモバイルと自宅PCとのファイルのやりとりです。 copy C:\"Documents and Settings\(略)\*.*" d:\bp\mail みたいな感じでコピーしています。 フォルダ内にファイルがたくさんあると、時間が掛かってしまいます。更新されているものだけを上書きするようにはできないものでしょうか。

  • テキストファイル結合のバッチコマンド

    DOSプロンプトで、「copy」というコマンドを使って特定のフォルダ内のテキストファイルを全て読み込んで結合するバッチファイルを作りたいのですが、わかる方教えてください。

  • DOSでテキストファイルの中のある文字だけを消すコマンドはありますか?

    こんばんは。WindowsXPを使っています。だからコマンドプロンプトでDOSのコマンドを使っているのですが、できないことがあって困っています。 あるテキストファイルの中にある、ある文字だけを消去するコマンドってありますか? Linuxではtrというコマンドでそれができるのですが、DOSではできないんだろうか、と疑問です。 今のところ、その操作をエディタで行っていますが、何百個というファイルを扱う予定なのでDOSのコマンドでできれば、バッチファイルを作って一括処理ができるから便利だなと考えているのです。 私はwindows98から使い始めたのでDOSはあまりわからなくて、DOS世代の方などご存知でしたら教えてください。お願いします!!

  • テキストファイルのデータの追加

    二つのテキストファイルを結合というより新規のデータだけを追加したいのですが、そのようなコマンドはあるのでしょうか? 今は copy a.txt+b.txt c.txt copy c.txt b.txt を動かした後、テキストbを開いてテキストaとテキストbの重複しているデータを手作業で消しています。 また、上の2行のコマンドを1行にすることは可能でしょうか?

  • 連番のファイルをDOSコマンドで

    DOSコマンドを利用し、バッチ処理でタスクスケジューラーにて、定期的に、テキストファイルへリダイレクトするのですが、ファイルネームを連番で生成してくれる、コマンド(構文?)をご教授下さい。 例:ipconfig >***.txt (***の部分を連番)

  • DOSコマンド

    テキストファイル内にある指定された文字列を、指定した文字に置き換えできる DOSコマンドはありませんか? バッチ形式で、検索文字列、置き換え文字列が指定できるのが希望です。 例:テキストファイル内 C:\Documents and Settings\○○ バッチ実行後↓ C:\Documents and Settings\×× ○○を検索して××に置き換えしなさい といった感じです。

  • DOSコマンド フォルダ内のファイル名

    指定したフォルダの中にある、ファイル名をフルパスでtxtファイルで出力できるDOSコマンドは何でしょうか。かなり前に使用したのですが、忘れてしまいました。宜しくお願い致します。