繁体   English   中英

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

[英]How to add line numbers to a text file from a batch file (Windows)

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

例如

1 line1
2 line2
etc

干得好:

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

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

有关详细信息, 请参阅此页面

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

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

@echo off

set file=%1     
set x=1

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

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

通过call另一个批处理文件来替换该set来进行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
)

太过复杂了,让我们知道这一点。 对于Windows XP及更高版本(我们需要findstr),以下是命令行所需的全部内容,或者批量添加行号到OP所需的输入文件...

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM