Попытка выяснить, почему пакетный файл работает дважды - PullRequest
0 голосов
/ 27 ноября 2010

Я уверен, что это что-то очевидное, но я не могу понять, по какой-то причине, пакетный файл, который я вставил ниже, всегда запускается дважды, а не один раз, когда он достигает: переименовать.Может кто-нибудь сказать мне, в чем проблема?Это связано с 2 другими вопросами - Поиск способа выполнить командный файл, если папка наберет 10 файлов и , скопировать и переименовать файлы определенного расширения через командный файл

Вот командный файл --->

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

1 Ответ

0 голосов
/ 27 ноября 2010

Эта строка:

if %count% GEQ 5 call :rename

звонит :rename. После возврата переименования код продолжается после этого if, который снова оказывается :rename.

Замените этим кодом, чтобы увидеть, что происходит:

echo before call
if %count% GEQ 5 call :rename
echo after call
...