[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 7# Batcher

合并批处理很好用,速度也快。如果合并后每行行首都加上“文件名+@”,上面批处理如何修改。

TOP

本帖最后由 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
复制代码
文件名与文本各行是用@@@隔开的。

TOP

回复 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
复制代码

TOP

看来只有退而求其次,分割前将要分割文本中的"!"替换为"^!"后,再用批处理分割文本了。

TOP

返回列表