用于复制同一文件的批处理脚本

时间:2016-09-16 08:28:39

标签: batch-file

我需要您的帮助,下面的批处理脚本会复制并粘贴相同的文件名,其中包含从源到目标文件夹的不同分机,我希望一次只能将副本限制为4个文件,例如在源文件夹中有8个文件,即A.txt,A.xml,B.txt,B.xml,C.txt,C.xml。当我执行时,脚本必须只复制
A.txt,A.xml
B.txt,B.xml
到目的地文件夹。

下面的脚本能够查找和复制具有相同名称的文件,但我无法限制副本。

set MaxLimit=2
for %%i in ("E:\Source\*.xml") do (
if exist "%%~dpni.txt" (
    copy /y "%%~i" "E:\destination"
        copy /y "%%~dpni.OCL" "E:\destination"
if %%i==%MaxLimit% exit /b 0
)
)

1 个答案:

答案 0 :(得分:0)

您必须使用setlocal启用延迟展开。然后定义一个计数器并在循环内递增它。然后将您的限制与计数器进行比较(使用!counter!来评估循环中的变量)

set MaxLimit=2
setlocal enabledelayedexpansion
set counter=0
for %%i in ("E:\Source\*.xml") do (
if exist "%%~dpni.txt" (
    copy /y "%%~i" "E:\destination"
        copy /y "%%~dpni.OCL" "E:\destination"
set /a counter+=1
if !counter!==%MaxLimit% exit /b 0
)
)
相关问题