Base 7.00 peut retourner un Code de sortie (niveau d’erreur) au fichier de commandes

Exclusion de responsabilité du contenu obsolète de la base de connaissances

Cet article a été rédigé sur les produits pour lesquels Microsoft n’offre plus aucune prise en charge. Par conséquent, cet article est proposé « en l’état » et ne sera plus mis à jour.

Résumé

Traitement par lots de MS-DOS (. Les fichiers BAT) peuvent utiliser une instruction « IF ERRORLEVEL n » pour détecter les niveaux de code de sortie retournés par certains programmes.


Toutefois, les seules versions de Basic de Microsoft qui permettent à un programme renvoyer un code d’erreur MS-DOS sont Microsoft base Professionnel développement système (PDS) versions 7.00 et 7.10. Le n de fin ou STOP n renvoie n niveau d’erreur dans le fichier de lot qui a appelé la base 7.00 ou 7.10. Programme de l’EXE. L’instruction de n IF ERRORLEVEL dans le fichier de commandes peut détecter si le code de sortie retourné est égale ou supérieure à n.


Dans toutes les autres versions de Microsoft Basic, le code de niveau (sortie) d’erreur renvoyé par un programme de base est contrôlé par le module de base lors de l’exécution, pas par votre programme. Comme alternative, vous pouvez créer un fichier dans le programme de base à utiliser comme un indicateur lorsqu’une certaine condition se produit. Le fichier de commandes appelé votre programme peut ensuite vérifier l’existence du fichier indicateur à la place de la vérification d’un niveau d’erreur. Dans les fichiers de commandes, la commande « IF EXIST nomfichier » utilisable.


Les produits suivants ne permettent pas de votre programme renvoyer un niveau d’erreur pour les fichiers de commandes MS-DOS :


  1. QuickBasic versions 1,00, 1.01, 1.02, 2.00, 2.01, 3.00, 4.00, 4.00b et 4.50 pour MS-DOS
  2. Versions Microsoft GW-Basic 3,20 3.22 et 3.23 pour MS-DOS
  3. Versions de compilateur de base Microsoft 5.35 et 5.36 pour MS-DOS et les versions 6,00 et 6.00b pour MS-DOS et MS OS/2

Plus d'informations

Votre programme de base ne doit pas tenter d’appeler les interruptions MS-DOS (appel d’interruption) à la fin avec un niveau d’erreur ; dans le cas contraire, des résultats étranges peuvent se produire et l’ordinateur peut se bloquer. Basic doit gérer la fin du programme lui-même.

Base 7.00 ou 7.10 peut renvoyer le Code de sortie (ERRORLEVEL) à un fichier de commandes

Une barre d’outils. Programme EXE compilé dans base 7.00 ou 7.10 permet l’arrêt n % ou l’instruction de n % fin pour renvoyer un code de sortie (% n) MS-DOS, comme suit :
   ' TEST.BAS   PRINT "This is a Basic program that returns an exit code of 5."
n% = 5
END n%

Le code de sortie peut être intercepté dans un fichier de commandes MS-DOS avec l’instruction GOTO, IF ERRORLEVEL n comme suit :
   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.

À l’aide d’un fichier sous la forme d’un indicateur pour un fichier de commandes

La technique suivante permet à n’importe quelle version de base de donner un simple message Oui ou non à un fichier de commandes.


Le fichier de commandes suivant, ERRT. BAT, appelle le programme base ERRTST, ce qui revient au fichier de commandes. Il vérifie ensuite l’existence du fichier ERRFIL (qui est un nom arbitraire) pour voir si une erreur s’est produite lors de l’exécution du programme de base :
   echo off   del errfil
errtst
if not exist errfil goto end
echo An error occurred during program running
:end
echo End of batch file

Le fichier suivant est ERRTST. BAS ; Il crée le fichier d’erreurs si elle ne peut pas ouvrir le fichier GARBAGE. DAT :
' set up to error out if "GARBAGE.DAT" does not existON ERROR GOTO errorlevel
OPEN "garbage.dat" FOR INPUT AS #1
CLOSE #1
END
errorlevel:
CLOSE #1
OPEN "errfil" FOR OUTPUT AS #1 'Create file that acts as a flag
CLOSE #1
SYSTEM ' Returns to DOS.

Pour illustrer cette procédure, compiler et lier des ERRTST. BAS comme suit :
   BC ERRTST.BAS;   LINK ERRTST.OBJ;

Maintenant, exécutez le fichier batch ERRT. BAT. Si le programme de base ne peut pas trouver le GARBAGE. DAT, ERRT. BAT indique « une erreur s’est produite lors de l’exécution du programme. »
Propriétés

ID d'article : 41533 - Dernière mise à jour : 27 janv. 2017 - Révision : 1

Commentaires