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

[文本处理] 批处理如何实现给文本内容添加行号?

文本内容比较多,但每行内容的前面没有序号,想用批处理自动给文本内容每行前面加个行号,请问如何写呢?
例如文本内容如下:
11.txt
需v师德师风
bdbdfbd-dfvd=dfd
231231323223123123232312323[fff]
sddfsfsfsd3231方便更方便
自动处理后格式为:
1-bdbdfbd-dfvd=dfd
2-231231323223123123232312323[fff]
3-sddfsfsfsd3231方便更方便
并输出到另外一个文本22.txt里

  1. @echo off
  2. set i=1
  3. >22.txt (for /f "delims=" %%s in (11.txt) do (
  4. setlocal enabledelayedexpansion
  5. <nul set /p "_=!i!"
  6. setlocal disabledelayedexpansion
  7. <nul set /p "_=-%%s"
  8. echo,
  9. set /a i+=1
  10. ))
复制代码
如果分隔符用冒号就简单了:
  1. findstr /N ".*" 11.txt > 22.txt
复制代码

TOP

  1. sed = 11.txt | sed "N;s/\n/-/" > 22.txt
复制代码

TOP

  1. gawk "{print NR\"-\"$0}" 11.txt > 22.txt
复制代码

TOP

  1. powershell -c "foreach ($i in $(gc 11.txt)) {$n++; \"$n-\" + $i}" > 22.txt
复制代码

TOP

回复 2# jingyu9575


   为什么会出现!i!这种情况,不能全部正常处理

TOP

不想使用第三方程序,希望大虾们帮助下吧,

TOP

每行前面添加行号和固定字符(例如-或.或空格)

TOP

  1. hash /printf:"%d-%s",number,string /file 11.txt >22.txt
复制代码

TOP

  1. @echo off
  2. (for /f "tokens=1* delims=:" %%a in ('findstr /n .* 11.txt') do echo %%a-%%b)>22.txt
复制代码
1

评分人数

    • wh1234567: 热心助人,感谢您的帮助技术 + 1

TOP

本帖最后由 CrLf 于 2014-7-21 00:22 编辑
  1. @echo off
  2. for /f %%a in ('find /c /v "" ^<11.txt') do set count=%%a
  3. (for /l %%a in (1 1 %count%) do (
  4.   setlocal enabledelayedexpansion
  5.   set /p "str="&echo;%%a-!str!
  6.   endlocal
  7. ))<11.txt >22.txt
复制代码

TOP

本帖最后由 wh1234567 于 2014-7-21 00:29 编辑

回复 10# CrLf


    哦,这个正常,感谢您了

TOP

  1. @echo off
  2. ((for /f "delims=" %%a in ('findstr /n .* 11.txt') do (
  3.    set "str=%%a"
  4.    set /a n+=1
  5.    setlocal enabledelayedexpansion
  6.    set "str=!str:*:=!"
  7.    echo !n!-!str!
  8.    endlocal
  9. ))>22.txt
复制代码

TOP

本帖最后由 wh1234567 于 2014-7-21 00:28 编辑

回复 11# CrLf


    这个不行,输不出

TOP

  1. @set @a=0;/*&echo off
  2. findstr /n .* 11.txt |cscript /nologo /e:jscript %0 >22.txt
  3. pause&exit
  4. */
  5. str = WScript.StdIn.ReadAll()
  6. str = str.replace(/^(\d+):/gm,'$1-')
  7. WScript.Echo(str)
复制代码

TOP

返回列表