2014-05-16 12 views
0

我需要寫一個容器,每5行... 例子:批該做什麼循環寫行每總諧波失真數值

 

div container 

    div 1,2,3,4,5 

/div container 

我的批處理

SETLOCAL ENABLEDELAYEDEXPANSION 
(
FOR /f %%a IN ('dir /b /a-d "C:\img\*.jpg" ') DO (
    SET /a seq=1000000000+%%~na 
    ECHO !seq!) 
)>"%temp%\tempfile" 
FOR /f %%a IN ('sort "%temp%\tempfile"') DO (
SET /a seq=%%a-1000000000 

:: break point block <div container> open 

    ECHO ^<div^>^<a href='images/%imgfolder%/full/!seq!.jpg'^>^</a^>^</div^> >>%page%.html 

:: break point block </div container> closed 

) 

感謝。

+1

你應該以純言傳您的問題。如果你的批處理文件沒有解決你的問題,那麼它沒有意義發佈它,而不是描述你的問題,不是嗎? – Aacini

回答

0

你的問題的說明不夠清楚,所以我猜測幾點。下面的批處理文件假設以下要求:

  • C:\img文件夾中有幾個* .jpg文件與數字的名稱,如1.jpg2.jpg
  • 該解決方案應該產生5一個div容器。每個jpg文件都按正確的順序排列。

這是我的解決方案:

@echo off 
setlocal EnableDelayedExpansion 

rem Get existent *.jpg files and sort they in the right order 
for %%a in (C:\img\*.jpg) do (
    set /A seq=1000000000+%%~Na 
    set file[!seq!]=%%a 
) 

rem Generate div containers with groups of 5 files each 
set i=0 
(for /F "tokens=2 delims==" %%a in ('set file[') do (
    set /A i+=1, iMOD5=i %% 5 

    if !iMOD5! equ 1 (
     rem break point block <div container> open 
     ECHO ^<div^> 
    ) 

    rem Output this file in the group of 5 
    echo ^<a href='images/%imgfolder%/full/%%~NXa'^>^</a^> 

    if !iMOD5! equ 0 (
     rem break point block </div container> closed 
     echo ^</div^> 
    ) 

)) > %page%.html 

rem Close the last div container, if any 
if %iMOD5% neq 0 (
    echo ^</div^>>> %page%.html 
) 
0

每次第0次和第5次迭代,它都會調用write_container函數,您可以根據自己的喜好調整數字(如1和6)。 試試這個:

SETLOCAL ENABLEDELAYEDEXPANSION 
FOR /f %%a IN ('dir /b /a-d "C:\img\*.jpg" ') DO (
    SET /a seq=1000000000+%%~na 
    ECHO !seq!) 
)>"%temp%\tempfile" 
set counter=0 
FOR /f %%a IN ('sort "%temp%\tempfile"') DO (
    SET /a seq=%%a-1000000000 
    SET /a counter+=1 

    if "!counter:~-1!"=="0" call :write_container 
    if "!counter:~-1!"=="5" call :write_container 

    :: break point block <div container> open 

    ECHO ^<div^>^<a href='images/%imgfolder%/full/!seq!.jpg'^>^</a^>^</div^> >>%page%.html 

    :: break point block </div container> closed 

) 

goto skip_write_container 
:write_container 
:: Enter the container code here 


goto :eof 
:skip_write_container 
+0

謝謝!完美的工作... 我只是設置啓動計數器... 你寫**計數器設置= 0 ** ... 我改變了設置= -1 **計數器** ...開始從1.jpg到N .. 再次感謝您。 –

+0

@ gerry_76有一種感謝人的方式 - 在接受答案時閱讀關於「tour」的幫助。 – foxidrive