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

[文本处理] 批处理怎样给多个文本中标题前添加序号?

大家好!哪位朋友能帮我一下?给我写个批处理或者修改这两个批处理.我这里有上百个文本文件,其文件名是按序号排列的,我想把文件名的序号添加到文本中的标题前,和标题在同一行.zm900612 这位朋友帮我写了一个批处理,但是处理完一个文件后就退出了,我想批量完成当前文件夹中所有的文本文件;我还搜集了一个批处理,可将文件名序号添加到文本中,可是序号和标题不在一行,序号在第一行,原来的标题在第二行.我想把序号和标题放在同一行的目的是便于提取文件标题使用,我这里有个批处理,可批量提取文本中第一行作为文件名,如果文件名只有标题没有序号查看起来杂乱无章.我把这两个批处理代码帖上来,请帮我修改一下或者提供一个批量合并文本中第一二行的批处理.期待回帖,非常感谢!
  zm900612 这位朋友帮我写的批处理代码:
  1. @echo off
  2. for /f "tokens=1*" %%a in ('dir /a-d /b *.txt') do (
  3.     (set /p=%%a<nul
  4.     type "%%a %%b"
  5.     )>"%%b.txt"
  6. )
  7. del /f /q "* *.txt"
复制代码
处理完一个文件后就退出了,不能完成当前文件夹中所有的文本文件,处理后的新文件没有名称,只有扩展名,可能是避免重复而自动中指程序的吧;
  可添加序号但和标题不在一行的批处理代码:
  1. @echo off
  2. set/a n=1000
  3. for %%a in (*.txt) do (
  4.     for /f "delims=" %%b in ('findstr/n ".*" "%%~a"') do (
  5.         set "str=%%b"&setlocal enabledelayedexpansion
  6.         set "str=!str:*:=!"
  7.         if not defined flag (>%%a echo %%~na&>>%%a echo/!str!) else (>>%%a echo/!str!)
  8.         endlocal&set flag=a
  9.      )
  10.      set "flag="&call :_ren "%%a"
  11. )
  12. pause&exit
  13. ::重命名
  14. :_ren
  15. set/a n+=1
  16. if not exist %n:~1%.txt (ren %1 "%n:~1%.txt") else goto _ren
复制代码
,能否修改一下,让添加序号时和原来文本中的标题在同一行.
  期待朋友们的赐教,同时感谢zm900612 的提供,管理员叫我重新更新,不知是不是这样编辑,有不当之处望能指出,谢谢!

感谢您的回帖,我刚注册,不懂规矩,见笑了.您写的批处理正是我需要的,我的意思是在原有标题前添加序号,序号和标题在同一行,您能否再修改一下批处理,由于修改后的新文本文件没有名称 只有扩展名,只处理一个文件后就退出了,希望能够批量完成当前文件夹中的所有文本文件.我不是想制作电子书,是想便于在手机上阅读,不必打开文本就能看到标题,而且能保持原有的顺序.我之前搜集了个批处理,可将文本第一行提取作为文件名,但是没有序号,原有的顺序打乱了,阅读起来很不方便.再次感谢您,并期待帮助!

TOP

3# hfg1977


感谢您的回复,我又学到了新的东西!

TOP

8# Batcher

自己顶一下,期待帮助,非常感谢!

TOP

返回列表