我正在尝试从批次中构建一个链,但是有些东西阻止我的第二批执行,因为它带来了第一批中的东西(我猜)
这是我的文件夹结构:
%~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)是相同的
如果我单独运行这些批次,那么它们会按应有的方式执行,但是,如果我尝试按照上述示例将它们链接起来,则会弹出:错误即使第二批/文件夹没有违反规则集,第二批的标签。因此,第二批将无法按应有的方式执行(与第一批一样)
一部分称呼我甚至尝试过开始但我的尝试都没有成功。这些是我已经尝试过的事情:
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"
还有一些组合...我哪里犯了错误?我想要的只是在第一批完成后单独运行第二批。最好在同一个窗口(但如果这不可能,那么第一批/窗口将打开第二批/窗口,并且第一批/窗口将在第二批开始运行后立即关闭)
正如我所看到的,第二批带来了第一批的规则集,因为当第一批完成时,在文件夹 [00] 中有一个文件“0.jpg”,这会触发:ERROR
第二批的标签。
感谢您阅读本文并提供任何帮助
答案1
找到了缺失的部分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