如何从批处理文件/命令提示符中向行文本文件添加行号?
e.g。
1 line1
2 line2
etc
答案 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"