Зацикливание на подпапку командного файла повторяет ту же папку - PullRequest
0 голосов
/ 14 апреля 2020

Идея состояла в том, чтобы объединить все jpg-файлы в отдельных папках в каталоге пакетных файлов в новую папку без каких-либо подкаталогов. Он работал как ожидалось в течение нескольких часов, но теперь он продолжает циклически копировать одни и те же файлы первой папки снова и снова. Любая подсказка, что на самом деле не так?

@echo off
::rmdir /S .\merge
::pause
mkdir .\merge
call :treeProcess
goto :eof
::pause
:treeProcess
rem Do whatever you want here over the files of this subdir, for example:
for %%f in (*.jpg) do (
echo %%f
xcopy .\*.jpg ..\merge\  /Y
)
for /D %%d in (*) do (
    cd %%d
    call :treeProcess
    cd ..
)
exit /b

1 Ответ

0 голосов
/ 15 апреля 2020

Я получил решение, но все еще в замешательстве, как будто я удаляю echo %%G, echo %%H, echo back to .. код по-прежнему не может сказать, ( unexpected at this time.

@echo off
::SETLOCAL EnableDelayedExpansion
::rmdir /S .\merge
::pause
::mkdir .\merge
dir /b /a-d
cd .
call :treeProcess
goto :eof
pause
:treeProcess
REM rem Do whatever you want here over the files of this subdir, for example:
for %%G in (*.jpg) do (
    echo %%G
    echo %%H
    ::echo inside %%H
    REM rem xcopy .\*.jpg ..\merge\ /e /Y
    xcopy .\%%G ..\merge\  /Y
)
FOR /D %%H in (*20*) do (
    cd %%H
    rem dir /b /a-d
    call :treeProcess
    cd ..
    echo back to ..
)
REM exit /b
REM :treeProcess
rem Do whatever you want here over the files of this subdir, for example:
REM %%G is a good choice because it does not conflict with any of the pathname format letters (a, d, f, n, p, s, t, x) and provides the longest run of non-conflicting letters for use as implicit parameters.
REM G > H > I > J > K > L > M
REM Format letters are case sensitive, so using a capital letter is also a good way to avoid conflicts %%A rather than %%a.
exit /b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...