7.00 Básica pode retornar código de saída (nível de erro) ao arquivo em lotes

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: 41533
Aviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.
Sumário
MS-DOS em lotes (.bat) arquivos de processamento podem usar uma instrução "IF ERRORLEVEL n" para detectar níveis de código de saída retornados por alguns programas.

No entanto, as únicas versões do Basic da Microsoft que permitem que um programa retornar um código de nível de erro para o MS-DOS são Microsoft Basic Professional desenvolvimento sistema (PDS) versões 7.00 e 7.10. O END n ou STOP n instrução retornará erro nível n para o arquivo em lotes que chamado 7.00 básica ou programa .exe 7.10. A instrução n IF ERRORLEVEL no arquivo em lotes pode detectar se o código de saída retornado é igual ou maior que n.

Em todas as outras versões do Microsoft Basic, o código de nível (saída) do erro retornado por um programa Basic é controlado pelo módulo de tempo de execução básico, não pelo seu programa. Como alternativa, você pode criar um arquivo no programa de básico para servir como um sinalizador quando ocorre uma determinada condição. O arquivo em lotes que seu programa de chamada, em seguida, pode verificar a existência do arquivo sinalizador no lugar de verificação de para um nível de erro. Em arquivos em lotes, o comando "IF EXIST arquivo" pode ser usado.

Os seguintes produtos não permitem que seu programa para retornar um nível de erro para arquivos de lote do MS-DOS:

  1. Versões QuickBasic 1,00, 1.01, 1.02, 2.00, 2.01, 3.00, 4.00, 4.00b e 4.50 para MS-DOS
  2. Versões de Microsoft GW-Basic 3.20, 3.22 e 3.23 para MS-DOS
  3. Versões de Microsoft Basic Compiler 5,35 e 5.36 para MS-DOS e versões 6 e 6.00b para MS-DOS e MS OS/2
Mais Informações
O programa Basic não deve tentar invocar qualquer interrupções do MS-DOS (CALL interrupção) para encerrar o programa com um nível de erro; caso contrário, podem ocorrer resultados estranhos e o computador pode travar. Básico deve tratar o encerramento de programa por si só.

Básico 7.00 ou 7.10 pode retornar código de saída (ERRORLEVEL) para o arquivo em lotes

Um programa .exe compilado no 7.00 básica ou 7.10 pode usar o % n STOP ou END % n instrução para retornar um código de saída (% n) para MS-DOS, da seguinte maneira:
   ' TEST.BAS   PRINT "This is a Basic program that returns an exit code of 5."   n% = 5   END n%				
o código de saída pode ser interceptado em um arquivo em lotes de MS-DOS com a instrução GOTO n IF ERRORLEVEL, da seguinte maneira:
   TEST   ECHO OFF   IF NOT ERRORLEVEL 1 GOTO DONE      ECHO  An error occurred with exit code 1 or higher.   :DONE   ECHO End of batch file.				

Usando um arquivo como um sinalizador para um arquivo em lotes

A técnica a seguir permite que qualquer versão básica dar uma simples mensagem Sim ou não a um arquivo em lotes.

O seguinte arquivo em lotes, ERRT.BAT, chama o programa Basic ERRTST, que cai volta para o arquivo em lotes. Em seguida, verifica a existência do arquivo ERRFIL (que é um nome arbitrário) se ocorreu um erro ao executar programa Basic:
   echo off   del errfil   errtst   if not exist errfil goto end   echo An error occurred during program running   :end   echo End of batch file				
o seguinte arquivo está ERRTST.BAS; ela cria o arquivo de erro se ele não é possível abrir o arquivo GARBAGE.DAT:
' set up to error out if "GARBAGE.DAT" does not existON ERROR GOTO errorlevelOPEN "garbage.dat" FOR INPUT AS #1CLOSE #1ENDerrorlevel:   CLOSE #1   OPEN "errfil" FOR OUTPUT AS #1   'Create file that acts as a flag   CLOSE #1   SYSTEM   ' Returns to DOS.				
para demonstrar esse procedimento, compilar e vincular ERRTST.BAS da seguinte maneira:
   BC ERRTST.BAS;   LINK ERRTST.OBJ;				
agora executar o arquivo em lotes ERRT.BAT. Se o programa básico não pode localizar GARBAGE.DAT, ERRT.BAT mostra "Ocorreu um erro durante o programa em execução."
QuickBas BasicCom

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 41533 - Última Revisão: 11/21/2006 14:32:21 - Revisão: 1.2

  • kbmt KB41533 KbMtpt
Comentários