2016-09-16 105 views
0

我需要您的幫助,下面的批處理腳本將從不同的ext文件夾複製並粘貼到源文件夾到目標文件夾,我希望一次只限制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 
) 
) 
+0

我得了癌症,從您的代碼,請編輯您的問題,並把你的問題的代碼段中'代碼sample'對待我比較你的極限看起來像'{}' – Jonas

+0

確實,編輯正在等待批准。如果你有足夠的代表,批准它。 –

+0

這些文件是否應該隨機複製?是否只打算複製一次單個文件?如果你沒有同時執行所有的拷貝,你打算如何讓腳本知道哪些文件先前已被拷貝過。 – Compo

回答

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 
) 
)