2012-11-27 116 views
0

我沒有編程經驗,但想做到以下幾點:多個文件合併

我希望能夠選擇哪些文件我想從多達十個文件夾合併。一旦選擇完成......假設a,b & d然後程序將合併文件夾1-10中的a,b & d,然後將10個文件夾的輸出合併爲1個文件.....

這是可能的,什麼是最好的方式來編程呢?

文件夾#1

文件A - 合併 文件B - 合併 文件C 文件d - 合併

文件夾#2

文件A - 合併 文件B - 合併 文件C 文件D - 合併

文件夾#3

文件A - 合併 文件B - 合併 文件C 文件d - 合併

文件夾#4

文件A - 合併 文件B - 合併 文件C 文件d - 合併

文件夾#10

文件 文件B 文件C 文件d

+0

什麼文件格式(S),你會被合併? – joequincy

回答

0

這是你想要做什麼?:

@Echo OFF 

:: By Elektro [email protected] 

Set "folder=C:\Users\Administrador\Desktop\Test" 

Echo Selected Folder: "%FOLDER%" 
Set /P "files=Select files to merge (Example: "File1.txt" "File2.txt" "File3.txt") >> " 


For %%@ in (%files%) Do (
    For /R "%FOLDER%" %%# in (*) DO (
     IF /I "%%@" EQU "%%~nx#" (call Set "Files_to_merge=%%Files_to_merge%% "%%#"+") 
     ) 
    ) 
) 


Copy /A %Files_to_merge:~0,-1% ".\output_file.txt" 
pause&Exit 

PS:請記住,改變Copy命令的格式,/ A文本文件,/ B爲二進制文件。

CMD輸出:

>Selected Folder: "C:\Users\Administrador\Desktop\Test" 
>Select files to merge (Example: "File1.txt" "File2.txt" "File3.txt") >> 

>file1.txt file2.txt file3.txt 

C:\Users\Administrador\Desktop\Test\file1.txt 
C:\Users\Administrador\Desktop\Test\Nueva carpeta\file1.txt 
C:\Users\Administrador\Desktop\Test\file2.txt 
C:\Users\Administrador\Desktop\Test\Nueva carpeta\file2.txt 
C:\Users\Administrador\Desktop\Test\file3.txt 
C:\Users\Administrador\Desktop\Test\Nueva carpeta\file3.txt 
     1 file(s) copied(s). 

Presione una tecla para continuar . . . 

Output_file.txt內容:

Content of "File1.txt" in first dir 

Content of "File1.txt" in firstsub-dir 

Content of "File2.txt" in first dir 

Content of "File2.txt" in firstsub-dir 

Content of "File3.txt" in first dir 

Content of "File3.txt" in firstsub-dir 
+1

工作很好!謝謝 :) – user1588191

0

您可以在命令行中使用Windows >>中的append運算符,只需列出所有要合併的文件,如下所示。

Folder1\fileA.txt >> Folder10\merge.txt 
Folder2\fileB.txt >> Folder10\merge.txt 
Folder2\fileC.txt >> Folder10\merge.txt 
Folder3\fileA.txt >> Folder10\merge.txt 

如果你想有一個批處理程序詢問用戶的文件,然後將其合併到某個位置,你可以做這樣的......

:while1 
    SET /P file=Please enter file name 
    if NOT (%file%) ==() (
     echo %file% 
     %file% >> Folder10\merge.txt 
     goto :while1 
    ) 

通常情況下,如果你有一個文件操作任務腳本語言(如批處理,perl或PowerShell)比編程語言更合適。如果你要在Windows中做非常簡單的事情,那麼批處理通常可以完成工作,否則我會建議使用perl或powershell。

如果您確實沒有編程經驗,那麼我會建議您閱讀一些PowerShell教程http://www.powershellpro.com/powershell-tutorial-introduction/,並花一些時間學習該語言。如果這對你來說太過於初始投資,那麼我只是建議將append命令輸入到一個.bat文件中,就像我在開始時一樣,並運行一次。它可能會比嘗試編寫和調試第一個腳本更快。

+0

蝙蝠是否可以爲合併操作員輸入? – user1588191

+0

.bat問...你想要合併什麼文件....然後操作員可以選擇a,b和d? – user1588191

+0

感謝您的回答....今晚我會給這些拍攝 – user1588191