如何在Batch中循环?

IAd*_*ter 3 windows loops dos batch-file

我想创造这样的东西

dup.bat infile outfile times
Run Code Online (Sandbox Code Playgroud)

示例用法是

dup.bat a.txt a5.txt 5
Run Code Online (Sandbox Code Playgroud)

在它会创建文件a5.txt,其内容为a.txt重复5次

但是我不知道如何批量循环,怎么做呢?

Jef*_*ado 11

你可以像这样循环:

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%
)
Run Code Online (Sandbox Code Playgroud)

然后,为了获取输入文件并重复它,您可以使用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%
)
Run Code Online (Sandbox Code Playgroud)