tarefa agendada retorna erro 0xff apesar do sucesso

1

Eu tenho uma tarefa agendada que executa um arquivo em lotes e, embora eu possa ver os resultados concluídos com êxito, de acordo com o agendador de tarefas, ele falha com o erro 0xff , sempre.

Eu tenho outros arquivos em lote programados que também são concluídos com êxito e retornam 0x0 como deveriam. A única diferença que posso ver entre esses arquivos é que os trabalhos terminam com:

IF ERRORLEVEL 1 (
    ("notify me" script here)
)

enquanto o quebrado termina com:

IF %2==something (
    (run a program here)
    IF ERRORLEVEL 1 (
        (same "notify me" script here)
    )
)

Um bloco IF retorna 0xff se falso ou algo assim? Qual é o problema?

    
por Kev 21.09.2009 / 15:54

2 respostas

5

A sintaxe que você está procurando é:

IF "%2"=="SOMETHING" (

Quando% 2 está vazio, a linha que você tem se torna:

IF ==SOMETHING (

Essa é uma sintaxe inválida. Colocar as citações nela faz com que:

IF ""=="SOMETHING" (

Isso é válido.

    
por 21.09.2009 / 16:05
0

Após alguns testes, descobri que os blocos IF estão bem, eles não parecem alterar o nível de erro, mas o que estava bagunçando era o "% 2 == algo" - os tempos que estavam falhando, Não houve segundo parâmetro sendo passado para o arquivo em lotes. Portanto, não tenho certeza de como "testar" com segurança se existe algum parâmetro (ou seja, sem que seja possível errar 0xff quando ele não estiver lá), exceto talvez para ter outro IF ERRORLEVEL depois disso. Mas, de qualquer forma, eu apenas mudei a tarefa agendada para que sempre tenha um segundo parâmetro (seja "algo" ou não) e parece retornar 0x0 como deveria agora.

    
por 21.09.2009 / 16:02