A tarefa agendada retorna 0xFF, mas funciona bem


0

O arquivo em lote converte mpg em avi e é executado em um agendamento. Embora o lote funcione bem no agendamento, a tarefa agendada retorna a mensagem 0xff. Rodando manualmente, ele exibe um código de saída 0. Eu tentei inserir 'end' - que retorna 0x0, mas ele só converte o primeiro arquivo e ignora o resto.

del /q /s staxrip_temp\* 
cd staxrip_temp
for /f "delims=" %%d in ('dir /s /b /ad ^| sort /r') do rd "%%d"
cd..
for %%f in (*.mpg) do echo %%f
for %%a in ("*.mpg") do call :go_now  "%%a"
 if %%a not==("*.mpg") goto eof
:go_now
echo processing %~n1.mpg
staxrip.exe -template:_myxvid "%~dpn1.mpg" -encode -exit
del /q "%~dpn1.mpg"
rem echo %ERRORLEVEL%
rem end

Resolvido: Substituído se %% a não == ("*. Mpg") ir para eof com: se não existir %% a %% sair

Respostas:


1

Tente adicionar um exit 0como a última instrução no arquivo em lotes.

Quits the CMD.EXE program (command interpreter) or the current batch
script.

EXIT [/B] [exitCode]

  /B          specifies to exit the current batch script instead of
              CMD.EXE.  If executed from outside a batch script, it
              will quit CMD.EXE

  exitCode    specifies a numeric number.  if /B is specified, sets
              ERRORLEVEL that number.  If quitting CMD.EXE, sets the process
              exit code with that number.

Hmm ... não tenho certeza da semântica exata do call {:label}comando ou como ele "retorna" - se sua :go_nowsub-rotina está retornando normalmente (ou seja, processando mais de um arquivo) quando você não coloca um endou exitoutro, então não não faça isso.

Provavelmente precisa mudar isso

if %%a not==("*.mpg") goto eof

para

if %%a not==("*.mpg") exit 0

mas aposto que o motivo pelo qual ele está retornando 0xFFé porque goto eofé um erro de sintaxe, você queria escrever goto :EOF.


Adicionando a saída 0, somente o primeiro arquivo é processado e sai.
SamAstin

se não existir %% a %% exit funciona, goto: EOF não, nem se %% a não == ("*. mpg") sair 0
SamAstin
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.