2011-05-12 178 views

回答

3

在这里你去:

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

这将可能只在一个批处理文件工作,而不是在命令行上。

For more info,see this page

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

+0

我可能是错的,但我猜他想要将数字添加到现有文件。 – 2011-05-12 17:46:33

+0

对不起,我的意思是外部文件 – James 2011-05-12 17:48:29

+0

@Mark Wilkins是的,这是正确的 – James 2011-05-12 17:49:00

2

我能得到的最接近的是这样的,它不工作:

@echo off 

set file=%1  
set x=1 

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

setfor循环中不能正常工作(因为我们是在蹩脚的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 
) 
+0

请参阅'help set'(接近尾部)了解如何使'set'在'for'循环内工作。您需要将'setlocal EnableDelayedExpansion'添加到您的脚本中,然后为运行时需要扩展的变量而不是解析时使用'!'而不是'%'环绕它们。另外,你不在DOS中。你在Windows命令行中。 – indiv 2011-05-12 20:54:09

+0

@indiv:Windows = DOS ++ ;-) – 2011-05-12 21:05:04

+0

Windows不是DOS。 – 2011-05-13 07:56:35

相关问题