iT邦幫忙

0

我有5個不同目錄,分別是A1~A5
A1~A5底下舉例有10個不同子目錄,分別為B1~B10,B11~B20,B21~B30,B31~B40......B99到B100
B1~B10 有100個TXT的文字檔案
是否有dos指令,可以把這所有的TXT全部合併~~
謝謝,想了非常久.真的想不出來.

應該是寫得出來
但我個人會比較懶惰一點
直接搜尋 *.txt 全部複製到 temp 資料夾
下指令 copy temp\*.txt temp\all.txt 完工
0
蟹老闆
iT邦大師 1 級 ‧ 2018-01-10 00:29:43
最佳解答

參考看看
假設
A1-A5在D槽的1234資料夾
批次檔位於D槽根目錄
D槽根目錄下要有Target.txt這個檔案
這個批次檔的內容如下:

Del  Target.txt
Echo. >Target.txt
For /D /R D:\1234 %%i In (*) Do @Copy "D:\Target.txt"+"%%i\*.txt"

執行完後所有的內容在Target.txt
當執行時會先刪除Target.txt後重建

jovi2004 iT邦新手 5 級 ‧ 2018-01-15 16:55:39 檢舉

程式最精簡,非常感謝您~

0
海綿寶寶
iT邦超人 1 級 ‧ 2018-01-08 23:11:47
For /R C:\A1\ %%G in (*.TXT) do type "%%G" >> result.txt
For /R C:\A2\ %%G in (*.TXT) do type "%%G" >> result.txt
For /R C:\A3\ %%G in (*.TXT) do type "%%G" >> result.txt
For /R C:\A4\ %%G in (*.TXT) do type "%%G" >> result.txt
For /R C:\A5\ %%G in (*.TXT) do type "%%G" >> result.txt
jovi2004 iT邦新手 5 級 ‧ 2018-01-09 08:31:36 檢舉

To:海編寶寶
這個時候不應有 %%G。

misadm iT邦高手 10 級 ‧ 2018-01-09 09:33:35 檢舉

%G 就可以了!兩個 %% 是要寫在批次檔裡。

0
haoming
iT邦好手 1 級 ‧ 2018-01-09 10:37:32

** 建立實驗環境

for /L %i in (1,1,5) do ( for /L %j in (1,1,5) do (md a%i\b%j))
for /L %i in (1,1,5) do ( for /L %j in (1,1,5) do (echo txt%i%j > a%i\b%j\%i%j.txt))

以上分別是建立目錄 跟 產生指定文字檔案

** 搭配forfiles 把 *.txt 合併 (參考 海綿寶寶的版本調整)

for /L %i in (1,1,5) do ( forfiles /p a%i\ /s /m *.txt /c "cmd /c type @file >> \output.txt" )

我要發表回答

立即登入回答