今回は追加ソフトなしで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ファイルに変換するために使うものだと思ってください。
最後まで読んでいただきありがとうございました。