Você está offline; aguardando reconexão

Corrigir a precedência de teste do arquivo em lotes ERRORLEVELs

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 39585
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sumário
Quando você usa várias instruções IF ERRORLEVEL em arquivos em lotes, a ordem em que o ERRORLEVELs são testadas numericamente é importante. A ordem correta é decrescente (maior para menor). Essa ordem é proveniente da maneira que ERRORLEVELs são testados. A condição se for definida como TRUE quando o ERRORLEVEL é igual a ou maior, o ERRORLEVEL número.
Mais Informações
O fragmento de arquivo em lotes a seguir demonstra esse comportamento incorreto:
   rem (execute a program which returns an errorlevel of 0 or 1)   if errorlevel 0 goto ZERO   if errorlevel 1 goto ONE   goto END   :ZERO     echo a Zero was returned!     goto END   :ONE     echo a One was returned!   :END				
o exemplo acima sempre ramifica para o "ZERO" rótulo, independentemente do êxito ou falha. Este exemplo funcionaria corretamente se o teste ERRORLEVEL tiver sido feito em ordem decrescente.

A maneira CORRETA de gravar um arquivo em lotes é da seguinte maneira:
   rem (execute a program which returns an errorlevel of 0 or 1)   if errorlevel 1 goto ONE   if errorlevel 0 goto ZERO   goto END   :ZERO     echo a Zero was returned!     goto END   :ONE     echo a One was returned!   :END				
6.22 2.x 3.x 4,00 4.01 5,00 5.00a 6.00 6.20 \ * yeswin4

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 39585 - Última Revisão: 12/04/2015 09:03:14 - Revisão: 2.0

Microsoft MS-DOS 2.11 Standard Edition, Microsoft MS-DOS 3.1, Microsoft MS-DOS 3.2 Standard Edition, Microsoft MS-DOS 3.21 Standard Edition, Microsoft MS-DOS 3.3 Standard Edition, Microsoft MS-DOS 3.3a, Microsoft MS-DOS 4.0 Standard Edition, Microsoft MS-DOS 4.01 Standard Edition, Microsoft MS-DOS 5.0 Standard Edition, Microsoft MS-DOS 5.0a, Microsoft MS-DOS 6.0 Standard Edition, Microsoft MS-DOS 6.2 Standard Edition, Microsoft MS-DOS 6.21 Standard Edition, Microsoft MS-DOS 6.22 Standard Edition

  • kbnosurvey kbarchive kbmt KB39585 KbMtpt
Comentários