我要創建這樣的如何在批處理中循環?
dup.bat infile outfile times
例子用法是
dup.bat a.txt a5.txt 5
它會創建文件a5.txt有a.txt中的重複內容的5倍
但我不知道如何做批量循環,如何做到這一點?
我要創建這樣的如何在批處理中循環?
dup.bat infile outfile times
例子用法是
dup.bat a.txt a5.txt 5
它會創建文件a5.txt有a.txt中的重複內容的5倍
但我不知道如何做批量循環,如何做到這一點?
你可以做這樣的循環:
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
要爲循環做一個簡單的,從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。這將重複五次,直到您的計數器r等於0,那麼它會清理你的變量並結束腳本。 SET ENABLEDELAYEDEXPANSION對於在循環內增加變量很重要。
我有點不確定你想要完成什麼。只需獲取a.txt的內容並將其粘貼5次到a5.txt中?如果是這樣,我認爲使用PowerShell和Get-Content調用會更合適。作爲參考,雖然批量循環只是爲了。 http://ss64.com/nt/for.html – 2011-04-08 18:06:13
@Mike Soule批次是mor通用,我知道它可以使用它來完成。 – IAdapter 2011-04-08 20:24:03