Windowsでバッチスクリプトを作成する方法

コマンドプロンプトの使用方法を知っていますか?そうすれば、バッチファイルを書くことができます。最も単純な形式では、バッチファイル(またはバッチスクリプト)は、ファイルをダブルクリックしたときに実行されるいくつかのコマンドのリストです。バッチファイルはDOSにまでさかのぼりますが、最新バージョンのWindowsでも機能します。

PowerShellスクリプトとBashスクリプトの方が強力な場合がありますが、基本的なWindowsコマンドを実行する必要がある場合は、バッチファイルが非常に役立ちます。

バッチファイルの基本

バッチファイルは、.batファイル拡張子で保存された単なるテキストファイルです。メモ帳またはNotepad ++などのより高度なテキストエディタを使用して作成できますが、MicrosoftWordなどのワードプロセッサは使用しないでください。

簡単なバッチファイルを作成しましょう。まず、メモ帳を開きます。次の行を入力します。

ECHO OFF ECHO Hello World PAUSE

次に、[ファイル]> [保存]をクリックしてファイルを保存します。任意の名前を付けますが、デフォルトの.txtファイル拡張子を.bat拡張子に置き換えます。

たとえば、名前を付けることができhello_world.batます。

これで、拡張子が.batのバッチファイルができました。ダブルクリックして実行します。この特定のバッチファイルはECHOをオフに設定します(プロンプトでコマンドが出力されないように出力をクリーンアップし、「Hello World」というテキストを画面に出力し、キーを押すのを待ってから終了します。

PAUSEファイルに追加しなかった場合、バッチファイルは単にコマンドを実行してから自動的に閉じます。この場合、ウィンドウに「Hello World」と出力され、すぐにコマンドプロンプトウィンドウが閉じます。出力を見ずにコマンドをすばやく実行したい場合は、これを省略できます。複数のコマンドを実行している場合PAUSEは、それらの間にコマンドを配置できます。

より複雑なバッチファイルの作成

バッチファイルを作成するのは基本的に簡単です。変更する必要があるのは、メモ帳に入力する内容だけです。複数のコマンドを実行するには、それぞれを独自の行に入力すると、バッチファイルが各コマンドを順番に実行します。

たとえば、いくつかのネットワーク診断コマンドを実行するバッチファイルを作成するとします。ipconfig /allネットワーク情報ping google.comを表示し、Googleのサーバーが応答してtracert google.comいるかどうかを確認し、google.comへのtracerouteを実行して、途中で問題が発生していないかどうかを確認するために実行することをお勧めします。

最も基本的な形式では、次のように、これらすべてのコマンドをバッチファイルに次々に配置するだけで済みます。

ipconfig / all ping google.com tracertgoogle.com一時停止

このファイルを実行すると、各コマンドの出力が次々に表示されます。しかし、これは必ずしもバッチファイルを書くための理想的な方法ではありません。

たとえば、コメント行を追加したい場合があります。aで始まる行::はコメント行であり、実行されません。これにより、ファイルに何が起こっているのかを、ファイルを渡す可能性のある人や、特定のコマンドをそこに置いた理由を忘れてしまう可能性のある将来の自分に説明するのに役立ちます。

また、ファイルの先頭に「ECHOOFF」コマンドを追加することもできます。これは通常、ほとんどのバッチファイルの先頭に追加されます。これを行うと、コマンド自体はコマンドプロンプトに出力されませんが、結果は出力されます。たとえば、ネットワーク接続の詳細は表示されますが、「ipconfig / all」行は表示されません。ほとんどの人はコマンドを見ることを気にしないので、これで出力をクリーンアップできます。

したがって、次のようになります。

::このバッチファイルは、ネットワーク接続の問題をチェックします。ECHO OFF ::ネットワーク接続の詳細を表示するipconfig / all :: Google.comに到達できるかどうかを確認するpinggoogle.com :: tracerouteを実行して、Google.comへのルートを確認するtracertgoogle.com一時停止

あなたがこのようなバッチファイルで行くことができる他の方向があります。たとえば、バッチスクリプトで上記のコマンドを実行してから、後で表示できるテキストファイルに出力をダンプすることができます。これを行うには、>>各コマンドの後に演算子を使用して、その出力をテキストファイルに追加します。とにかくテキストファイルからの出力を読み取るので、PAUSEコマンドを省略できます。

::このバッチファイルはネットワーク接続の問題をチェックします::そして出力を.txtファイルに保存します。ECHO OFF ::ネットワーク接続の詳細を表示するipconfig / all >> results.txt :: Google.comに到達できるかどうかを確認するpinggoogle.com >> results.txt :: tracerouteを実行して、Google.com tracertgoogleへのルートを確認します。 com >> results.txt

上記のスクリプトを実行すると、コマンドの出力を含むバッチファイルと同じフォルダーにresults.txtという名前のファイルが見つかります。バッチファイルの実行が完了すると、コマンドプロンプトウィンドウが自動的に閉じます。

The example we’re using above relies on actually printing information to the Command Prompt so the user can read it. However, many batch files are designed to be run non-interactively. For example, you could have a batch file that deletes multiple files or directories whenever you double-click it. You’d just need to use the del command to delete files or the deltree command to delete directories. Remember, you’re just using the same commands you’d run in a Command Prompt window.

Fundamentally, that’s the point of most batch files–just running a few commands one after another. However, batch files can actually be significantly more complex than this. For example, you can use “IF” statements along with the “GOTO” command to check the value of something and then skip to different lines depending on the result. This is more like writing an actual small program than a quick and dirty script. That’s one reason why .bat files are sometimes called “batch programs.” If you want to do something more complex, you’ll find plenty of guides to doing specific things with batch programming online. But now, you know the basics of how to throw a simple one together.