犬でもわかるバッチファイルの作り方〜bat、vbs、ps1の3つのスクリプト実行ファイルを使い分けよう

Windows

今まで3回にわたってお話させていただきました、「犬でもわかるバッチファイルの作り方」シリーズ。

その中で私は「バッチファイル、バッチファイル」と言っていましたが、これ正確には拡張子が「bat」となるスクリプト実行ファイルのことだけを指していました。
でも実は、スクリプト実行ファイルってbatだけではないんです。

そこで今回は誰でも作れるスクリプト実行ファイルをいくつかご紹介します。

これまでの「犬でもわかるバッチファイルの作り方」シリーズ

今回紹介する3つのスクリプト実行ファイル

  • bat
  • vbs
  • ps1

bat、vbs、ps1どれも命令文を書いてスクリプトを実行するためのファイルですが、それぞれ動作するプログラムが違います。

それぞれどんな違いがあるか比較してみましょう!

bat (コマンドプロンプト)


「bat」はコマンドプロンプトの命令文を上から順番に実行されるように記載しているファイルです。

メリット

Windows 3.1 から搭載されているWindows標準プログラムであるコマンドプロンプトがベースとなっており、他の2つのファイルと違い全てのWindowsで使用することが可能です。

またコマンドプロンプトがベースであるためナレッジがとても多いです。よって作成する際にコマンドなどの情報が見つけやすいです。

デメリット

そもそもプログラミング言語ではないため、複雑な処理を実行するのには向いていません。作れないこともないのですが、後で保守担当が苦労することが多いです。

単純な処理で使用することをおすすめします。

例:同じフォルダ内の複数のファイルを特定のフォルダに移動する。任意のプログラムを起動する。

vbs (VBScript)

「vbs」は「Microsoft Visual Basic Scripting Edition」の略でVisual Basicに非常に良く似ています。

メリット

プログラミング言語ですので複雑な処理を容易に作成できますし保守性もbatに比べれば高いです。

デメリット

プログラムが冗長になりがち

vbsの言語仕様は非常にシンプルであり、制御構文やクラスなど必要最小限の機能しか含まれていません。ファイルやデータベースなど言語仕様に含まれていない処理をする場合は、OLEと呼ばれる外部プログラムを呼び出して使用する必要があります。よって簡単な処理でもプログラムは少し冗長になってしまいます。

正規表現を使う必要あり

ワイルドカードを使用したあいまい検索ができません。代わりに正規表現が使用できますが慣れるまでは少し苦労すると思います。

慣れると非常に便利です。

MicrosoftがPowerShellへの切り替えをすすめている

vbsはWSH(Windows Script Host)を使用してスクリプトを実行しているのですが、今後新しい機能は追加しないと噂されています。実際、Windows 10でリリースされたWSH 5.812以降更新が行われていません。

一説によるとWSHを使用したスクリプトはレジストリにアクセスできるため、スクリプトを利用したウイルスや脆弱性攻撃などが増えたことが理由だといわれています。

あくまでも噂です。

そんな更新が見込まれないと思われるWSHの代わりに新しく登場したのがPowerShellであり、MicrosoftはWSHからPowerShellへの切り替えを積極的に進めています。

ps1 (PowerShell)


「ps1」はPowershellの命令文を使用したスクリプトファイルです。

メリット

.NET Frameworkのライブラリを使ってコマンドの機能を拡張できるため、できない事は無いといっても過言ではなく、Windowsサーバーの構成の変更、WindowsOSやアプリケーションの制御などWidnowsのシステムの操作も可能です。

またvbsで説明したようにMicorosoftはPowerShellの使用をすすめています。機能面を考慮してもPowerShellを第一候補にすべきでしょう。

それからps1はIntuneにPowerShellスクリプトとして追加し配信できる特徴があります。batやvbsはintunewin形式にした後、Win32アプリとして追加する必要があります。

デメリット

起動が少々面倒

batファイル、vbsファイルはダブルクリックで起動することが可能ですが、ps1ファイルはデフォルトではダブルクリックしても起動できません。

代わりにPowerShellを起動しps1ファイルを指定して実行する、もしくは右クリックで起動などひと手間加える必要があります。

その他の方法としてbatファイルやvbsファイルからps1を起動する処理を実行したり、ps1ファイルに関連付けているアプリをを変更することで簡単に起動できるようになります。

ナレッジがbatやvbsよりも溜まっていない

PowerShellはWindows 7から使用できるようになりました。すなわちbatやvbsよりも新しく、蓄積されているナレッジが比較的少ないです。

ただしこれはあくまでも「現在」のお話で、PowerShellの使用をMicrosoftが推奨していることから、これからPowerShellの使用が増えていけばその分ナレッジは増えていくはずです。

最後に

今回はスクリプトを実行するためのファイル3選を紹介しました。

これらのファイルを組み合わせることでできる処理の可能性は無限大!

うまく使いこなして業務を円滑に進めましょう!