2009-06-19 3 views
1

は、Microsoftバッチファイルを作成し、すなわち:コードの作業を行う方法、hiloop.batとしてマイクロソフトのバッチファイルはどのように機能しますか?

@echo off 
:loop 
echo HI! 
goto loop 

を保存しますか?もともと私はC++のような他のコードと同じように動作すると思っていましたが、バッチファイルが直接、あるいはそれを非常に効率的にするようなものを読んでいるところを読んでいました。

Microsoftの.batファイル作業?

答えて

2

完全に遅いと解釈されます。プログラム(コマンドライン・プロセッサー)は、各行を一度に1つずつ解釈し、何をしたいかを把握し、それを行い、次の行をチェックするか、または行くように指示された場所に移動します。

しかし、バッチファイルはCOM dll(本質的にコンパイルされたプログラム)の助けを呼び出すことができるので、その中で何が行われても非常に効率的です。そして、データベースアクセス、インタフェースコンポーネント、そして多くの困難ではあるが従来のものを構築するために必要なほとんどの機能を持つ何千ものdllがあります。

0

バッチファイルはシェルによって解釈されて実行されます(Windowsの場合はcmd.exe)。シェルは、ファイルの各行を上から読み込み、コマンドプロンプトに入力したかのようにコマンドとして実行します。

gotoコマンドなどの例外がありますが、これはコマンドプロンプトで入力すると意味がありませんが、バッチファイルで実行された場合は意味がありません。 gotoコマンドを見ると、シェルはファイルの先頭に戻り、gotoに示されているラベルが見つかるまで各行を順に読み込みます。その後、そこから実行を開始します。

上記の方法は、ではを解釈しないをコンパイルし、それは、C++のようなコンパイル言語より実行にはるかに効率的です。バッチファイルを「非常に効率的」とは決して呼ぶことはありません。たぶん "in効率的です"。

2

.batで終わるバッチファイルは、command.comによって解釈され、MS-DOSエミュレーションで実行されます。

.cmdで終わるバッチファイルは、cmd.exeによって解釈され、Windowsコンソールアプリケーションとして実行されます。

コマンドインタープリタは、[スタート]、[ファイル名を指定して実行]、およびcommand.comまたはcmd.exeのいずれかを入力して対話形式で開始できます。コマンドを入力するように促し、入力後に各行を実行します。バッチファイルは、基本的にコマンドを事前に指定するだけで、入力する必要がありません。バッチファイルは前処理されていないかコンパイルされていないため、効率の向上はほとんどまたはまったくありません。

gotoコマンドなどのバッチファイルでのみ機能するいくつかの機能があります。これにより、ループやブランチを作成してバッチファイル内の実行フローを制御できます。

関連する問題