2012-11-27 75 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