批处理:合并多个文本的内容,具体要求如下:

发布网友 发布时间:2022-04-21 20:21

我来回答

2个回答

热心网友 时间:2023-12-03 18:24

第一个:
@echo off
set str=0
:nok
cls
set/a str+=1
set/p num=拖进去:
(for %%a in (%num%) do (
more /e "%%a"&echo.&echo.&echo.
))>>拖动合并后的.txt
echo.第%str%个完成!
goto nok
pause

不支持多个文件一起拖动,只能一次一个,其实有更好的办法,但是你的要求是这样,也给你写出来了。下面是我建议的方式:(将你需要的文本和批处理文件放到一起,运行一下就可以了,不用拖来拖去的,麻烦。)

@echo off
(for %%a in (*.txt) do (
more /e "%%a"&echo.&echo.&echo.
))>N个文本.txt
echo.完成!
pause

每个文本内容间隔三行。
————————————————————————————————————————
第二个:
@echo off
(for %%a in (*.txt) do (
echo.%%~na&echo.
more /e "%%a"&echo.&echo.&echo.
))>n个文本的合并.含文件名.txt
echo.完成!
pause

将你需要的文本和批处理文件放到一起,运行一下就可以了 ,每个文本间隔三行,且空行处列出文件名追问首先感谢你回答了这么多,不过我测试了一下,有如下问题:
第一种方法:我这边测试好像不行,产生的文件全是空白
第二种方法:合是合成了,但是怎么合的是双倍呀?
我用两个100行的文本合并,结果却有400行,
看内容才知道里面的内容全部又复制了一遍
最后一个问题:命名时,n为拖入文本的数量,并不是单纯的n

追答第一个问题:产生的文件为空白
答:这个批处理是要运行的,和你后面提问题的那个答案不一样。(你需要的话,我等下给你修改)
第二个问题:合成的文本有双倍
第三个问题:N为数量
答:双倍是因为生成的文本文档也在当前目录下,所以一起统计进去了。N为文本数量我已经修改好,代码在下边。

@echo off
if exist "temp.ini" del "temp.ini"
for %%b in (*.txt) do echo %%b >>temp.ini
for /f "usebackq" %%j in (temp.ini) do set/a n=n+1
echo.当前文件夹一共%n%个文本文档
(for %%a in (*.txt) do (
echo.%%~na&echo.
more /e "%%a"&echo.&echo.&echo.
))>c:\%n%个文本的合并.含文件名.txt
del "temp.ini" /f/s/q>nul 2>nul&&echo._________完成!
pause

生成文件在C盘根目录下(小小的说一句,我觉得这一个已经可以搞定了,第一个我自己都觉得麻烦,呵呵……)

热心网友 时间:2023-12-03 18:24

有点复杂

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
0.488743s