Você está offline; aguardando reconexão

Corrigir a precedência de testes do ficheiro batch 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Sumário
Quando utiliza várias instruções IF ERRORLEVEL em ficheiros batch, a ordem pela qual os ERRORLEVELs são testadas numericamente é importante. A ordem correcta é descendente (mais alto ao mais baixo). Esta ordenação provém da forma que ERRORLEVELs são testadas. A condição se é definida como TRUE quando o ERRORLEVEL é igual ou superior, o ERRORLEVEL número.
Mais Informação
O fragmento de ficheiro batch seguinte demonstra este comportamento incorrecto:
   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				
sempre ramos o exemplo anterior para o "ZERO" nome, independentemente do êxito ou falha. Neste exemplo deverá funcionar correctamente se os testes ERRORLEVEL foi efectuado por ordem descendente.

A forma CORRECTA de escrever um ficheiro de batch é da seguinte forma:
   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