Windowsのtypeコマンドでファイルの文字列を連結(結合)する

copyコマンドとtypeコマンドがあるけど、typeコマンドがおすすめ。調べてみました。

Google「windows type 結合」
https://digimamalife.com/howto-merge-csv-files
https://www.relief.jp/docs/002793.html

よく使う例

私が結合したいと思うファイルは「テキストファイル.txt」と「CSVファイル.csv」(TSVも同義)が多いです。
まず構文はこんな感じ。

copyコマンド

copy *.txt all.txt
テキストファイルが複数あって、結合ファイルが「all.txt」。
ここに来る人は基礎力はあると思うけど、一応注意事項。作業するときはフォルダ、ファイル名を固めておきましょう。

typeコマンド

type *.txt >> all.txt
こちらも同じくテキストファイルが複数あって、結合ファイルが「all.txt」。
でも「>>」が追加されている。これは「追記」って意味。ちなみに「>」は「上書き」ってこと。

結局どっち?

どっちでもいいじゃん?とりあえずやってみる。

…。

結合順がハチャメチャだ…。

結果、結合順番こだわりたいです!!あと文字化けしました。たぶんUTF8とShift_JISのなんやかんや…。調べる。

Google「windows type 結合 utf8」
http://www.koikikukan.com/archives/2013/06/27-025555.php

なるほど、コマンドプロンプトの文字コードを変えればいい?
chcpコマンドでいまの文字コードが確認できる。

  • 932→Shift_JIS
  • 65001→UTF-8
  • 51932→EUC-JP

そんでもってUTF-8にしたいときは「chcp 65001」と入力して実行すればいいらしいけど、私の場合は変なエラー画面が出ました。放置しました。というのは、テキストエディタにvscodeを使っているので、vscodeで開けばなんとか勝手にやってくれるだろう的な期待がありました。

それより結合順のほうが気になります(ちなみにvscodeで開いたら勝手に文字化けがどっかいきました。ごめんなさい、課題解決または自分のやりたいことの優先順位決めてるつもりです。)。調べる。

Google「windows type 結合 順番」
http://note.mokuzine.net/win-cmd-type/

typeの場合

type file1.txt file2.txt file3.txt >> all.txt
とスペースで区切って行くといいみたいです。
候補のファイル名はtabキーを押すたびに候補が出てくるので苦ではないと思います。

copyの場合

これをcopyでやってみると…。
copy file1.txt file2.txt file3.txt all.txt
はい、だめです。「そんな構文ないよ!」って怒られます。

ちなみにcopyコマンドの場合、ファイル名が肝のようです。
Google「copy ファイル 結合 順番」
https://sittoku.net/cmd_copy.html

まとめ

だからファイル結合はtypeコマンドがおすすめです。
「あぁ~めっちゃラク」(心の声が漏れてしまった。)

コマンドプロンプト…プチプログラミングみたいなものです(勝手にそう思っています。Linuxとかだとシェルプログラミングって言いますしね。)。

いままで恥ずかしながら、複数のファイルをメモ帳で開いて、コピぺ、コピぺ、コピぺを繰り返していました。

このコマンドを覚えたらもう一生そんなことしませんな?
でも「コマンドプロンプト」を知らなかったら、私たちはいつコマンドプロンプトを知ることができるのでしょうか?

「自分は何を知らない?」「これで何ができるか知らない?」なんかトンチみたいですけど、私は知れてよかったです。

コマンドプロンプト、どんどん使っていきましょう!!

タイトルとURLをコピーしました