如何在批处理循环?

我想创造这样的东西

dup.bat infile outfile times 

示例用法将是

 dup.bat a.txt a5.txt 5 

它会创build文件a5.txt,其中包含a.txt的内容重复5次

不过我不知道怎么做批量循环,怎么做呢?

Solutions Collecting From Web of "如何在批处理循环?"

你可以这样做循环:

 SET infile=%1 SET outfile=%2 SET times=%3 FOR /L %%i IN (1,1,%times%) DO ( REM do what you need here ECHO %infile% ECHO %outfile% ) 

然后为了获取输入文件并重复输入,可以使用MORE重定向将输入文件的内容附加到输出文件中。 注意这里假设这些是文本文件。

 @ECHO off SET infile=%1 SET outfile=%2 SET times=%3 IF EXIST %outfile% DEL %outfile% FOR /L %%i IN (1,1,%times%) DO ( MORE %infile% >> %outfile% ) 

对于命令行参数

 set input=%1 set output=%2 set times=%3 

为了做一个简单的for循环,从input文件读入数据,然后写入output文件:

 FOR /L %%i IN (1,1,%times%) DO ( FOR /F %%j IN (%input%) DO ( @echo %%j >> %output% ) ) 

您可以通过命令行来执行输出文件,而不是输入文件:

 dup.bat a.txt 5 > a5.txt 

紧凑设计:

 SETLOCAL ENABLEDELAYEDEXPANSION SET times=5 :Beginning IF %times% NEQ 0 (TYPE a.txt>>a5.txt & SET /a times=%times%-1 & GOTO Beginning) ELSE ( ENDLOCAL & set times= & GOTO:eof) 

轻松阅读:

 SETLOCAL ENABLEDELAYEDEXPANSION SET times=5 :Beginning IF %times% NEQ 0 ( TYPE a.txt>>a5.txt SET /a times=%times%-1 GOTO Beginning ) ELSE ( ENDLOCAL set times= GOTO:eof ) 

设置您的计数器(次数= 5)开始子程序开始如果您的计数器不等于0,请读取a.txt并将其内容添加到a5.txt,然后将计数器减1。这将重复五次,直到您的计数器等于0 ,那么它会清理你的变量并结束脚本。 SET ENABLEDELAYEDEXPANSION对于递增循环内的变量很重要。