如何从批处理文件中将行号添加到文本文件中(Windows)

时间:2011-05-12 17:28:59

标签: windows batch-file

如何从批处理文件/命令提示符中向行文本文件添加行号?

e.g。

1 line1
2 line2
etc

3 个答案:

答案 0 :(得分:3)

你走了:

@echo off
FOR /L %%G IN (1, 1, 100) DO (
     echo %%G line%%G
)

这可能只适用于批处理文件,而不适用于命令行。

有关详细信息,请see this page

如果要循环遍历现有文件并向其添加数字,则必须使用for /F loop处理该文件,并在每次循环迭代中使用set /a counter+=1之类的语句来增加你的柜台。然后将每一行吐出到一个新文件,最后用新文件替换旧文件。

答案 1 :(得分:2)

我能得到的最接近的是,这不起作用:

@echo off

set file=%1     
set x=1

for /f "delims=|" %%i in (%file%) do (
  echo %x% %%i
  set /a x=%x%+1
)

set循环中的for不起作用(因为我们处于糟糕的DOS中)。

set替换为call到另一个批处理文件以进行x的增量和设置也不起作用。

<强>附录

好的,添加@indiv建议的修复程序,我们得到了这个(看起来确实有效):

@echo off

set file=%1     
set x=1
setlocal EnableDelayedExpansion

for /f "delims=|" %%i in (%file%) do (
  echo !x! %%i
  set /a x=!x!+1
)

答案 2 :(得分:1)

所有方法都太复杂了,让我们对此进行审查。对于Windows XP和更高版本(我们需要findstr),以下是在命令行上或按OP希望将行号添加到输入文件的全部操作...

type "in.txt"|findstr/n ^^ > "out.txt"