我想创建像这样的东西
dup.bat infile outfile times
示例用法是
dup.bat a.txt a5.txt 5
在它会创建文件a5.txt,其内容为a.txt重复5次
但是我不知道如何批量循环,怎么做?
答案 0 :(得分: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%
)
然后要获取输入文件并重复它,您可以使用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%
)
答案 1 :(得分:3)
对于命令行参数
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
答案 2 :(得分:0)
叹息
紧凑型设计:
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并将其内容APPEND到a5.txt,然后将你的计数器递减1.这将重复五次,直到你的计数器等于0,然后它将清理你的变量并结束脚本。 SET ENABLEDELAYEDEXPANSION对于在循环中增加变量非常重要。