2014-02-14 47 views
0

下面的部分是邏輯的僞代碼。我想知道同樣的批處理代碼。我有一個邏輯,我需要在批處理文件(窗口)中寫入相同的邏輯。以下是代碼

var num = 5; 
var total = 45; 
for(i = 1; i <= total/num; i++) { 
    for(j = num - 1; j >= 0; j--) { 
     // copy filename_((num*i) - j) to desitinationFolder/i/ 
    } 
} 

基本上,這將做的是:

  • 副本filename_1到filename_5到destinationFolder/1/
  • 副本filename_6到filename_10到destinationFolder/2/
  • 副本filename_11到filename_15到destinationFolder/3/

等等......

+0

我不知道如何編寫批處理程序,而不知道語法。但這裏是一個射擊: '爲/升%% i的(1,1,%DIV%)不設置II = %% I&撥打:FOR_LOOP \t轉到:for_end \t:FOR_LOOP \t集/ aj =!num!-1 \t \t \t:while_loop \t if!j! geq 0 goto:while_end \t \t \t \t set/a source =!num!*!ii! - !j! !!。 \t \t XCOPY/I/Y PRJ _源*這裏\ II \ \t \t組/ AJ = J-1 \t \t轉到:!while_loop \t:while_end \t 轉到:EOF :for_end' – kaizer1v

回答

0

,作爲您的理解,要5個文件傳輸到每個文件夾。 也就是說,文件1到文件5被放入文件夾1,文件夾2中放入6到10,文件夾3中放入文件1到5,等等。

試一試這段代碼,應該只用一個循環就能正常工作。

@echo off 
setlocal enabledelayedexpansion enableextensions 

set total=45 
set /a result=(total/num1) 

set foldernum=0 
FOR /L %%I IN (1,1,%total%) DO (
    set /A var=%%I %% 5 
    if !var! == 1 (
     set /A foldernum=foldernum + 1 
    ) 
    ECHO %%I And !foldernum! 
) 
pause 
2

你可以試試這個了......

@echo off 
setlocal enabledelayedexpansion enableextensions 

set num1=5 
set total=45 
set /a result=(total/num1) 

FOR /L %%I IN (1,1,%result%) DO (
    FOR /L %%J IN (%num1%, -1, 1) DO (
     set /a curr=%num1%*%%I - %%J 
     echo !curr! 
    ) 
) 
pause 
+0

好..如何從1開始而不是從0開始並以45結束而不是44結束? – kaizer1v

+0

更改行set/a curr =%num1%* %% I - %% J設置/ a curr =%num1%* %% I - %% J + 1 – user3310092