2011-05-12 176 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

相關問題