标题: [文本处理] 批处理合并文本 [打印本页]
作者: 有理想的PIG 时间: 2020-6-9 00:01 标题: 批处理合并文本
有A文件夹
1.txt
2.txt
3.txt
有B文件夹
2.txt
5.txt
当A文件夹包含B文件夹TXT时, 比如 2.txt B文件夹的2.txt 就和 A文件的2.txt合并,合并输出在A文件夹
当A文件夹不包括B文件夹TXT时,比如 5.txt,则直接复制到A文件夹
作者: smss 时间: 2020-6-9 01:00
本帖最后由 smss 于 2020-6-9 10:41 编辑
- for %%# in ("A文件\*.txt") do if exist "B文件\%%~nx#" (copy/b "%%#"+"B文件\%%~nx#" "%%#")else copy "B文件\%%~nx#" "%%#"
复制代码
或- for /r A文件 %%a in (*.txt) do for /r B文件 %%b in (*.txt) do if "%%~nxb"=="%%~nxa" (copy/b "%%a"+"%%b" "%%a")else copy "%%b" "%%a"
复制代码
作者: Batcher 时间: 2020-6-9 08:44
回复 2# smss
你的代码里面哪部分是实现“合并输出”?
作者: 有理想的PIG 时间: 2020-6-9 09:00
回复 3# Batcher
测试了二楼的,好像没效果
求老大出手,相同文件名合并,不同文件名保留复制
作者: went 时间: 2020-6-9 09:24
需要ansi编码- @echo off
- set "folderA=C:\Users\lenovo\Desktop\新建文件夹\A"
- set "folderB=C:\Users\lenovo\Desktop\新建文件夹\B"
- for %%i in ("%folderB%\*.txt") do (
- if exist "%folderA%\%%~nxi" (
- copy /y "%folderA%\%%~nxi"+"%%~i" "%folderA%\%%~nxi"
- ) else (
- copy /y "%%~i" "%folderA%\%%~nxi"
- )
- )
- pause&exit
复制代码
作者: smss 时间: 2020-6-9 10:24
太困没看到回复 3# Batcher
作者: Gin_Q 时间: 2020-6-10 09:18
- findstr .* test.txt >> result.txt
复制代码
追加和并
作者: Batcher 时间: 2020-6-10 09:30
回复 7# Gin_Q - type test.txt >> result.txt
复制代码
findstr效率可能比较低
作者: Gin_Q 时间: 2020-6-10 10:11
回复 8# Batcher
的确,但是能用啊。^_^,我想他应该不要求多高的效率!
作者: hlzj88 时间: 2020-6-12 22:12
依楼主的描述,其本质就是 把b文件夹内的文件追加进a文件夹内的同名文件内。
则只需要- @echo of
- for /f "delims=" %%i in ('dir /b b\*.txt') do type b\%%i>>a\%%i
- pause
复制代码
b文件夹内的文件是否保留,楼主没有说。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |