Estou tentando fazer uma cadeia a partir de lotes, mas algo impede que meu segundo lote seja executado porque ele traz material do primeiro lote (eu acho)
esta é a minha estrutura de pastas:
%~dp0..\× H\
|______ [00]\
| |_________________ 123.jpg
| # hard.cmd
|
|
|______ [00] - cópy\
|_________________ 345.jpg
# hard.cmd
e começo em "%~dp0..\× H\[00]\# hard.cmd"
, onde o conteúdo do meu # 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
observe que o conteúdo de ambos lotes (# hard.cmd) é mesmo
se eu executar esses lotes separadamente, eles serão executados como deveriam, no entanto, se tentar encadeá-los conforme demonstrado acima, será exibido o rótulo : ERROR do segundo lote, mesmo se o segundo lote / pasta não violar o conjunto de regras. e como resultado o 2º lote não executará como deveria (como o primeiro)
além de CALL ing eu tentei START ing, mas nenhuma das minhas tentativas funcionou. estas são as coisas que eu já tentei:
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"
e mais algumas combinações ... onde cometi um erro? tudo que eu quero é executar o 2º lote separadamente após o 1º terminar. preferível na mesma janela (mas se isso não for possível, então o 1º lote / janela abrirá o 2º lote / janela e o primeiro fechará logo após a 2ª parte começar a correr)
como eu vejo, o segundo lote traz o conjunto de regras do primeiro lote, porque quando o primeiro lote termina, então na pasta [00] existe um arquivo "0.jpg" e isso aciona o rótulo :ERROR
do segundo lote.
obrigado a ler isto e por qualquer ajuda