Я пытаюсь создать цепочку из партий, но что-то мешает запустить мою вторую партию, потому что она приносит вещи из первой партии (наверное)

это моя структура папок:

%~dp0..\× H\
          |______ [00]\
          |         |_________________ 123.jpg
          |                            # hard.cmd
          |
          |
          |______ [00] - cópy\ 
                    |_________________ 345.jpg
                                       # hard.cmd

и я начинаю в "%~dp0..\× H\[00]\# hard.cmd" где содержимое моего # hard.cmd :

TITLE "R"
CHCP 1250 > NUL 2>&1
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
FOR /F %%a IN ('ECHO PROMPT $H ^| CMD') DO SET BS=%%a
SET "CC=- cópy"
SET "NAME=0"

:IN
   IF NOT EXIST "SOUR CE.png" ( GOTO :CHECK )
   GOTO :START

:START
   IF EXIST "SOUR CE.jpg" IF EXIST "SOUR CE.png" ( GOTO :ASK )

:ASK
   ECHO      RESET JOB ?     y / n
   SET /P "ANSWER=X%BS%                  "
   IF '%ANSWER%' == ''      GOTO :START
   IF '%ANSWER%' == 'n'     GOTO :NO
   IF '%ANSWER%' == 'y'     GOTO :YES

:NO 
   DEL /Q /A /F "SOUR CE.jpg" "%NAME%.jpg"
   GOTO :CHECK

:YES
   DEL /Q /A /F "%NAME%.jpg"
   GOTO :CHECK

:CHECK
   IF EXIST "*.jpg" IF EXIST "*.png" ( GOTO :ERROR )
   IF EXIST "%NAME%.jpg"             ( GOTO :ERROR )
   GOTO :CONTINUE

:CONTINUE
   IF EXIST "*.jpg" ( IF NOT EXIST "SOUR CE.jpg" ( REN "*.jpg" "SOUR CE.jpg" ) )
   IF EXIST "SOUR CE.jpg" ( app.exe -i "SOUR CE.jpg" -o "%NAME%.jpg"
                           GOTO :NEXT )
   GOTO :NEXT

:ERROR
   ECHO this is error
   PAUSE > NUL
   GOTO :NEXT

:NEXT
   IF EXIST   "%~dp0..\[00] %CC%\"     (
   CALL       "%~dp0..\[00] %CC%\# hard.cmd"
   IF EXIST   "%~dp0..\[00] %CC%"  ( REN "%~dp0..\[00] %CC%"  "[02]" ) )
   ECHO DONE

обратите внимание, что содержимое обеих партий (# hard.cmd) одинаково

если я запускаю эти пакеты отдельно, то они выполняются так, как должны, однако, если я пытаюсь объединить их в цепочку, как показано выше, появляется всплывающее окно : метка ERROR для второго пакета, даже если вторая партия / папка не нарушает набор правил. и, как результат, 2-я партия не должна выполняться так, как должна (как первая)

обособленно ВЫЗОВ ИНГ Я попытался даже НАЧАТЬ ING, но не из моих попыток работал. это то, что я уже пробовал:

CALL                      "%~dp0..\[00] %CC%\# hard.cmd"
START CALL                "%~dp0..\[00] %CC%\# hard.cmd"
START "" CALL             "%~dp0..\[00] %CC%\# hard.cmd"
START "" CMD /C           "%~dp0..\[00] %CC%\# hard.cmd"
START "" CMD /K           "%~dp0..\[00] %CC%\# hard.cmd"
START "" /WAIT  /B        "%~dp0..\[00] %CC%\# hard.cmd"
START "" /WAIT /B       /D"%~dp0..\[00] %CC%" "# hard.cmd"
START "" /WAIT /B CALL    "%~dp0..\[00] %CC%\# hard.cmd"

и еще несколько комбинаций ... где я ошибся? все, что я хочу, это запустить 2-ю партию отдельно после того, как 1-я закончится. предпочтительнее в том же окне (но если это невозможно, 1-й пакет / окно откроет 2-й пакет / окно, и первый закроется справа, а второй начнет работать)

как я вижу, 2-й пакет приносит набор правил из 1-го пакета, потому что, когда 1-й пакет заканчивается, в папке [00] появляется файл «0.jpg», и это вызывает метку :ERROR 2-го пакета.

спасибо, что прочитали это и за любую помощь

1 ответ1

0

обнаружил недостающую часть PUSHD "%~dp0..\[00] %CC%\":

:NEXT
   IF EXIST   "%~dp0..\[00] %CC%\"     (
   PUSHD      "%~dp0..\[00] %CC%\"
   CALL       "%~dp0..\[00] %CC%\# hard.cmd"
   IF EXIST   "%~dp0..\[00] %CC%"  ( REN "%~dp0..\[00] %CC%"  "[02]" ) )
   ECHO DONE

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .