重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

BAT記述の質問です。複数のテキストファイルを1つのファイルにしたいのですが・・・
type *.txt > AAA.csv
では、ファイルは1つになりますが、内容をファイル名順に並べたいのです。
つまり、
【AA02.txt】
2222,3333,4444
【AA03.txt】
3333,4444,5555
4444,5555,6666
【AA01.txt】
1111,2222,3333

【AAA.csv】
1111,2222,3333
2222,3333,4444
3333,4444,5555
4444,5555,6666
としたいのです。ファイルの作成時間順の、並びになるようです。(findコマンドでも同様でした)

A 回答 (6件)

typeコマンドが作成時間順に拾うので思い通りにいかない、ですかね。



であれば
dir /ON *.txt
が、望む順序で表示されるのを確認した上で
for /F "usebackq" %i in (`dir /b *.txt`) do type %i >>AAA.csv
でイケるんじゃなかろうか…
(BATじゃなくてコマンドラインです。)
    • good
    • 0
この回答へのお礼

ありがとうございます。出来上がりました。
DIR /b AA*.txt | SORT > FILE1.bat
busybox64.exe sed s/”AA”/”TYPE AA”/ FILE1.bat > FILE2.bat
busybox64.exe sed s/”csv”/”csv >> FILE9.txt”/ FILE2.bat > COMD.bat
ECHO exit /b 0 >> COMD.bat
CALL COMD.bat
MOVE FILE9.txt AAA.csv
DEL FILE*.* /Q
DEL COMD.bat /Q
*sedコマンドを実行させるために「busybox64.exe」を利用しました。

お礼日時:2024/12/29 11:06

No.5 ですが、オプションが抜けてましたね。


`dir /B /ON *.txt` です。
    • good
    • 0
この回答へのお礼

ありがとうございます。出来上がりました。
DIR /b AA*.txt | SORT > FILE1.bat
busybox64.exe sed s/"AA"/"TYPE AA"/ FILE1.bat > FILE2.bat
busybox64.exe sed s/"csv"/"csv >> FILE9.txt"/ FILE2.bat > COMD.bat
ECHO exit /b 0 >> COMD.bat
CALL COMD.bat
MOVE FILE9.txt AAA.csv
DEL FILE*.* /Q
DEL COMD.bat /Q
*sedコマンドを実行させるために「busybox64.exe」を利用しました。

お礼日時:2024/12/29 11:03

No.3お礼欄


>UNIXのSEDコマンドのようなものはあるでしょうか?
すみません、私はUNIXのコマンドをしりません。

ですが特殊な機能無用でTYPE(テキストファイルを表示するだけ)で
充分ですよ?

それ絡みで
>SEDの替わりの簡単なDOSコマンドはあるでしょうか?
の正答できません。

ってかTYPEで充分やろ
とすら思いました

細かい所は説明文のスペース1つですら結果違ったりすることもあるんで
現実的にはご自分でいちいち確認しなさいよ

こんな回答の場で100%間違いない方法を伝えるなんかほぼ無理ですよ
あんた質問者さんもあるいみ技術者さんなのでしょ?
頼りきる姿勢ならクソ間違ってますよ
    • good
    • 0
この回答へのお礼

ありがとう

お礼日時:2024/12/29 11:10

似たようなのした事ありますが、結論。


「1発なBATchは難しすぎるし、バグ発見しづらいで、
記述多いけど単純なBATchファイルを作って実行」が私の結論。

>ファイル名順
を拾うにはSORTを使えます。
DIR|SORT>出力.txt
でok.
|はパイプ。>はファイルに出力。
ファイル追記は>>。

でその後をテキストエディタで
ファイル名以外の行は不要なので削除。
残った各行を
TYPE FILE1 >> 出力テキストファイル
TYPE FILE2 >> 出力テキストファイル
に改編。
同操作の繰返そはテキストエディタの「キーボードマクロ」で手間少。
最後、拡張子.BATに改名すれば即実行可能。

Windows 以後のBATch はもっといろんな記述できるみたいだけど知らん
    • good
    • 0
この回答へのお礼

ありがとうございます。
改編の部分ですが、UNIXのSEDコマンドのようなものはあるでしょうか?
forはよくわからないので・・・。

ご教授頂いた内容は、
BAT文を生成するということだと思いますが、
出力.txt--------------------------------
AA01.txt
AA02.txt
AA03.txt
----------------------------------------
までできましたが、下記の文面に改編するコマンドが、
SED "AA" "TYPE AA"
SED "txt" "txt >> ALL_txt"
を実行して
出力2.txt---------------------------------
TYPE AA01.txt >> AA_ALL.txt
TYPE AA02.txt >> AA_ALL.txt
TYPE AA03.txt >> AA_ALL.txt
------------------------------------------にして
が完成だと思いますが、SEDの替わりの簡単なDOSコマンド
はあるでしょうか?

その後は、
MOVE AA_ALL.txt AA_ALL.bat

AA_ALL.batの実行だと理解しました。

お礼日時:2024/12/28 18:19

んー


ファイル名順になります。。。
typeコマンドはタイムスタンプを見ないのでは
    • good
    • 0
この回答へのお礼

ありがとう

お礼日時:2024/12/29 11:09

COPY File1+File2+File3 AllFiles


この場合は、File1、File2、File3を合成して、AllFilesに出力します。
合成する内容に応じた順番を選択できます。
    • good
    • 0
この回答へのお礼

ありがとうございます。
AA01.txtとしましたが、ファイル名にタイムスタンプが付いていますので
名前が確定できませんし、個数も確定できません。
ありがとうございました。

お礼日時:2024/12/28 17:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A