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

  • バッチファイルは、ダブルクリックすると実行されるコマンドのリストです。これらは最新のWindowsのバージョンで動作し、プレーンテキストエディタを使用して作成されます。
  • 簡単なバッチファイルは、コマンドを1行ずつ入力することで作成できます。「ECHO OFF」でコメントを追加したり、コマンドを隠したりすると、可読性が向上します。
  • バッチファイルは、コマンドの出力をテキストファイルに保存したり、複数のタスクを実行するために非対話型で実行したりなど、より複雑なタスクに使用できます。また、より優れた制御のために条件付きステートメントを含めることもできます。

コマンドプロンプトの使い方を知っていますか? 知っているなら、バッチファイルを作成できます。最も単純な形で、バッチファイル(またはバッチスクリプト)は、ファイルをダブルクリックすると実行される複数のコマンドのリストです。バッチファイルはDOSまでさかのぼりますが、最新のWindowsのバージョンでも動作します。

基本的なバッチファイルを作成する方法

バッチファイルは、単に拡張子が.batのテキストファイルです。メモ帳や、Notepad++やVisual Studio Code(VSCode)などのより高度なプレーンテキストエディタを使用して記述できますが、Microsoft Wordのようなワードプロセッサは使用しないでください。ワードプロセッサは通常、バッチスクリプトが正しく実行されるのを妨げる書式設定に関連する追加のものを挿入します。

PowerShellスクリプトとBashスクリプトはより強力かもしれませんが、基本的なWindowsコマンドを実行する必要がある場合は、バッチファイルでも十分に役立ちます。これらはWindows 10とWindows 11の両方で動作し、今後も当分の間動作します。

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

<code>ECHO OFF
ECHO Hello World
PAUSE</code>

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

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

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

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

より複雑なバッチファイルを作成する

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

たとえば、ネットワーク診断コマンドを複数実行するバッチファイルを作成するとします。ipconfig /allを実行してネットワーク情報を表示し、ping google.comを実行してGoogleのサーバーが応答しているかどうかを確認し、tracert google.comを実行してgoogle.comへのトレースルートを実行し、問題があるかどうかを確認したい場合があります。道。

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

<code>ipconfig /all
ping google.com
tracert google.com
PAUSE</code>

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

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

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

これがどのように見えるかを示します:

<code>:: このバッチファイルは、ネットワーク接続の問題がないかどうかを確認します。
ECHO OFF
:: ネットワーク接続の詳細を表示
ipconfig /all
:: Google.comに到達できるかどうかを確認
ping google.com
:: Google.comへのルートを確認するためにtracerouteを実行
tracert google.com
PAUSE</code>

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

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

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

上記の例では、ユーザーが読めるように実際に情報をコマンドプロンプトに出力する必要があります。しかし、多くのバッチファイルは対話形式で実行されるように設計されています。たとえば、ダブルクリックするたびに複数のファイルやディレクトリを削除するバッチファイルを作成できます。ファイルを削除するにはdelコマンドを使用し、ディレクトリを削除するにはdeltreeコマンドを使用するだけです。コマンドプロンプトウィンドウで実行するコマンドと同じコマンドを使用していることを忘れないでください。

基本的に、ほとんどのバッチファイルのポイントは、いくつかのコマンドを順番に実行することです。しかし、バッチファイルは実際にはこれよりもはるかに複雑である可能性があります。たとえば、「IF」ステートメントと「GOTO」コマンドを組み合わせて、何かの値をチェックし、結果に応じてさまざまな行にスキップすることができます。これは、簡単なスクリプトというよりも、実際の小さなプログラムを作成することと似ています。これが、.batファイルが「バッチプログラム」と呼ばれることがある理由の1つです。より複雑なことをしたい場合は、バッチプログラミングで特定のタスクを実行する方法を説明するガイドがオンラインでたくさん見つかります。しかし、これで、簡単なバッチファイルをまとめる方法の基本がわかりました。