找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: qixiaobin0715

[文本处理] [已解决]批处理怎样实现文本文件合并,处理后分割?

[复制链接]
 楼主| 发表于 2019-7-26 17:22:57 | 显示全部楼层
回复 7# Batcher

合并批处理很好用,速度也快。如果合并后每行行首都加上“文件名+@”,上面批处理如何修改。
 楼主| 发表于 2019-7-27 10:22:55 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2019-7-27 10:25 编辑

已经自己解决:
  1. @echo off
  2. SetLocal EnableDelayedExpansion
  3. for /f "delims=" %%i in ('dir /s /b /a-d *.txt') do (
  4.   for /f "delims=" %%a in ('type "%%i"') do (
  5.     set Var1=%%~ni
  6.     set Var2=%%a
  7.     echo,!Var1!@@@!Var2!>>全合并.log
  8.   )
  9. )
  10. pause
复制代码
文件名与文本各行是用@@@隔开的。
 楼主| 发表于 2019-7-29 14:29:36 | 显示全部楼层
回复 7# Batcher

文件分割问题也早已解决,但自己写的还是有问题:
当文本中有英文感叹号时,分割时会被忽略掉,如何才能解决,希望大神能给予帮助。
代码如下:
  1. @echo off
  2. SetLocal EnableDelayedExpansion
  3. if not exist Fenge md Fenge
  4. for /f "delims=" %%i in ('dir /s /b /a-d "*.log"') do (
  5.   for /f "delims=" %%a in ('type "%%i"') do (
  6.     set Var=%%a
  7.     if "!Var:~0,1!"=="@" (
  8.       set Name=!Var!
  9.       cd.>"Fenge\!Name!.txt"
  10.     ) else (
  11.       echo,!Var!>>"Fenge\!Name!.txt"
  12.     )
  13.   )
  14. )
  15. pause
复制代码
 楼主| 发表于 2019-7-31 15:41:48 | 显示全部楼层
看来只有退而求其次,分割前将要分割文本中的"!"替换为"^!"后,再用批处理分割文本了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 06:18 , Processed in 0.015837 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表