【追加ソフトなし】バッチファイルをEXEファイルに変換する

4/27/2023

Batch Windows

t f B! P L

今回は追加ソフトなしでWindows標準搭載の「IExpress」を使ってバッチファイル(Batch ファイル)をEXEファイルに変換してみたいと思います。

このソフトで何を行うか

まず初めに、タイトルには「変換」とありますが、IExpressが行うのは、皆さんが求めている変換でないかもしれません

IExpressは一連のファイル(バッチファイル等)を圧縮して、自己解凍形式のパッケージを作成するソフトです。

つまり、バッチファイルをEXEファイルに変換するというよりは、バッチファイルをEXEファイルに格納し、解凍時にバッチファイルを実行するコマンドを実行するということです。

バッチファイルがバイナリ化されるわけではなく、そのままの状態で格納されるので、EXEファイルを解凍するとバッチファイルの中身は見ることができます

そのため、バッチファイルの中身を見られたくないのでEXEに変換したいという場合は、サードパーティ製のソフトを使う必要があると思われます。

バッチファイルを作成

まずはバッチファイルを作成します。
今回は「test.bat」というファイル名で作成しました。

@echo off
echo Hello World!
pause > nul

このバッチファイルは「Hello World!」と表示して、何かキーを押すと終了するというとても単純なものです。

バッチファイルをEXEファイルに変換

まず、Windowsのスタートボタンを押して「iexpress」と検索し、管理者として実行を選択します。

Win + Rを押して、「ファイル名を指定して実行」からiexpressと入力し、Ctrl + Shiftを押しながらOKを押して実行することもできます。

「IExpress Wizard」が起動したら、Create new SelfExtraction Directive fileを選択して次へを押します。

Extract files and run an installation commandを選択して次へを押します。

Extract files onlyを選択してしまうと、ただの圧縮ファイルになってしまうので注意してください。

パッケージのタイトルとして、好きなものを入力して次へを押します。

ユーザーにインストールの際に確認画面を表示するか聞かれるのでNo promptを選択し、次へを押します。

ライセンスを表示するか聞かれるので、Do not display a licenseを選択し、次へを押します。

先ほど作成したバッチファイルを追加するために、Addを押し、ファイルを選択し、次へを押します。

この際、複数のバッチファイルやリソース等を追加することもできます。

ここが、今回のポイントです。
Install Programには、バッチファイルを実行するコマンドを入力します。

cmd /c <バッチファイルの名前>

コマンドを入力したら、次へを押します。

どのように画面を表示するか聞かれるので、Default (recommended)を選択し、次へを押します。

インストール終了時のメッセージを表示するか聞かれるので、No messageを選択し、次へを押します。

Browseからパッケージの名前と保存先を指定して、次へを押します。

インストール終了時にPCを再起動するか聞かれますが、バッチファイルを実行するだけなので、No restartを選択し、次へを押します。

今までの情報を保存するか聞かれますが、今回は保存しないので、Don't saveを選択し、次へを押します。

次へを押すと、パッケージの作成が始まります。

Done!と表示されたら、完了を押してIExpressを終了します。

この際に、このようなエラーが出たら、管理者権限で実行されていない可能性があります。

IExpressを管理者権限で実行しなおし、上記の工程をもう一度行ってください。

指定した場所にexeファイルが作成されているので、実行してみます。

正常にバッチファイルが実行されていることが確認できました。

まとめ

このように、かなり簡単にバッチファイルをexeファイルに変換することができました。

ただし、最初にも記載しましたが、バッチファイル自体はそのまま保存されています。

そのため、この方法はソースコードを見られないようにするために使うものではなく、あくまでバッチファイルをより配布しやすいEXEファイルに変換するために使うものだと思ってください。

最後まで読んでいただきありがとうございました。