2009-06-19 9 views
1

Lorsque vous effectuez un fichier de commandes Microsoft, à savoir: sauverComment fonctionne un fichier batch Microsoft?

@echo off 
:loop 
echo HI! 
goto loop 

comme hiloop.bat, comment fonctionne le code? A l'origine je pensais que cela fonctionnait comme n'importe quel autre code comme C++, mais ensuite j'ai lu quelque part qu'un fichier batch fonctionnait directement sur le système d'exploitation, ou quelque chose comme ça qui le rendait extrêmement efficace, donc

Comment un fichier microsoft .bat travail?

Répondre

2

Il est entièrement interprété aussi lent que possible. Un programme (processeur de ligne de commande) interprète chaque ligne une à la fois, détermine ce qu'il veut faire, le fait, et vérifie la ligne suivante ou va là où il est dit d'aller.

Cependant, comme un fichier de traitement par lots peut appeler l'assistance de dll COM (qui sont essentiellement des programmes compilés), tout ce qui est fait dans ces fichiers peut être très efficace. Et il existe des milliers de dll avec des fonctionnalités telles que l'accès à la base de données, l'utilisation de composants d'interface et la plupart de tout ce dont vous avez besoin pour construire de nombreuses choses difficiles mais conventionnelles.

0

Les fichiers batch sont exécutés de manière interprétée par le shell (sous Windows, il s'agit de cmd.exe). Le shell lit chaque ligne du fichier en commençant par le haut et exécute la ligne en tant que commande comme si vous l'aviez tapée dans l'invite de commande.

Il existe des exceptions telles que la commande goto, ce qui n'a pas de sens si vous le tapez à l'invite de commande, mais dans le cas d'une exécution dans un fichier de commandes. Lorsque vous voyez la commande goto, le shell revient au début du fichier et lit chaque ligne à tour de rôle jusqu'à ce qu'il trouve l'étiquette indiquée dans le goto. Ensuite, il commence à s'exécuter à partir de là.

La méthode ci-dessus est interprété et non compilé, il est donc beaucoup moins efficace à l'exécution d'un langage compilé comme le C++. Je n'appellerais jamais les fichiers batch "extrêmement efficaces". Peut-être "extrêmement dans efficace".

2

Les fichiers batch qui se terminent par .bat sont interprétés par command.com et exécutés sous émulation MS-DOS.

Les fichiers batch qui se terminent par .cmd sont interprétés par cmd.exe et s'exécutent en tant qu'applications de console Windows.

Vous pouvez démarrer l'interpréteur de commandes de manière interactive en utilisant Démarrer, Exécuter, puis en tapant command.com ou cmd.exe. Il vous demandera des commandes et exécutera chaque ligne après l'avoir tapé. Un fichier batch spécifie simplement les commandes à l'avance afin que vous n'ayez pas besoin de les taper. Le fichier de commandes n'est pas prétraité ou compilé, il y a donc peu ou pas de gain d'efficacité.

Certaines fonctions ne fonctionnent que dans les fichiers batch, comme la commande goto qui vous permet de créer des boucles et des branches pour contrôler le flux d'exécution dans le fichier batch.

Questions connexes