2010-11-27 81 views
0

我相信這是明顯的,但我似乎無法弄清楚,出於某種原因,我粘貼下面的批處理文件總是運行兩次,而不是一次,當它擊中:改名。有人能告訴我這裏的問題是什麼嗎?這是關係到2個其他問題 - Looking for a way to execute a batch file once a folder hits 10 filescopy and rename files of a certain extension via batch file試圖找出爲什麼批處理文件運行兩次

這裏是批處理文件--->

rem Counting files... 
set /a count = 0 
for /f "tokens=*" %%P IN ('dir "H:\" /A /b') do (set /a count += 1) 



rem 5 or more files? 



if %count% GEQ 5 call :rename 



:rename 
SET count=1 
FOR /f "tokens=*" %%G IN ('dir /b *.jpg') DO (call :rename_next "%%G") 

goto:copy 

:rename_next 
ren "%1" %count%.jpg 

Pause 
set /a count+=1 

goto:eof 

:copy 
xcopy c:\photo\*.jpg c:\photo\files /Y 
Pause 
+0

謝謝你,工作和有意義。我添加了一個goto:eof退出。 – samsam 2010-11-27 23:28:02

回答

0

這條線:

if %count% GEQ 5 call :rename 

呼籲:rename。重命名後返回,代碼繼續之後,如果,這恰好是:rename再次。

與此代碼替換,看看發生了什麼:

echo before call 
if %count% GEQ 5 call :rename 
echo after call 
相關問題