首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合并多个文件

合并多个文件
EN

Stack Overflow用户
提问于 2012-11-27 08:26:05
回答 2查看 171关注 0票数 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

文件A文件B文件C文件D

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-27 17:58:26

这就是你想要做的吗?

代码语言:javascript
复制
@Echo OFF

:: By Elektro H@cker

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:记住要更改复制命令的格式,文本文件的格式为/A,二进制文件的格式为/B。

命令输出:

代码语言:javascript
复制
>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内容:

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2012-11-27 08:38:39

你可以从命令行中使用>>中的附加操作符,然后列出你想要合并的所有文件,如下所示。

代码语言:javascript
复制
Folder1\fileA.txt >> Folder10\merge.txt
Folder2\fileB.txt >> Folder10\merge.txt
Folder2\fileC.txt >> Folder10\merge.txt
Folder3\fileA.txt >> Folder10\merge.txt

如果你想要一个批处理程序向用户请求文件,然后将其合并到某个位置,你可以这样做……

代码语言:javascript
复制
:while1
    SET /P file=Please enter file name
    if NOT (%file%) == () (
        echo %file%
        %file% >> Folder10\merge.txt
        goto :while1
    )

通常,如果您有一个文件操作任务,则脚本语言(如批处理、perl或powershell)比编程语言更合适。如果你打算在Windows中做一些非常简单的事情,那么batch通常可以完成这项工作,否则我建议使用perl或powershell。

如果你真的没有编程经验,那么我建议你阅读一些powershell教程http://www.powershellpro.com/powershell-tutorial-introduction/,花一些时间学习这门语言。如果这对你来说是一项太多的初始投资,那么我建议你像开始时那样在.bat文件中输入附加命令,然后运行一次。这可能比尝试编写和调试您的第一个脚本更快。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13575511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档