20220125: winget - self packaging で installer に .bat を設定できなかったので、.bat を .exe で wrap したい。
「.bat .exe wrap」でググってみると、
iexpress ってツールで .bat を .exe で wrap 出来るらしい。
なんじゃ?そりゃ?聞いたこと無いツールだし、知名度低い野良ツール入れるの嫌だなーと思いながら
「.bat .exe wrap iexpress」でググってみたら、 ってページを見つけたんだが、え!? iexpress って、Windows 標準搭載のツールなの???
マジかー、知らんかったー
これ、自己展開形式のアーカイブ作るツールらしいんだけど、アーカイブするファイルと展開後に実行するファイルを指定することで、自己展開形式の簡易インストーラーが作れるようだ。
で、ウイザード形式なので、適当にポチポチやってたら、サクッと出来たのだが、実行してみると
と言われて実行できない。
って、Windows 10 に Command.com なんてないでしょ?
何だ、このレガシーツールは!?
と思い、上で見つけた stackoverflow のページ見てみると .bat 食わせると Command.com 呼ぶから
ウイザードで行った設定は .SED (SelfExtraction Directive) ファイルに保存されるので、
それ編集して、
アドバイス通り .SED 書き換えてみたら上手く動いた。
で、「テピタスの参考書」のページではそういうエラー出ずに上手く行ってね?と思い、きちんと読んでみたら、なんか、直接 .bat 呼ばずに .cmd から .bat 呼ぶ二度手間してるのね。
ということで、hello.bat を hello.cmd にリネームして、.SED もそれに合わせてみたら、cmd.exe /c 指定しなくても
- stackoverflow / 2018-07-18: Batch file wrapped as an IExpress executable does not run properly
iexpress ってツールで .bat を .exe で wrap 出来るらしい。
なんじゃ?そりゃ?聞いたこと無いツールだし、知名度低い野良ツール入れるの嫌だなーと思いながら
「.bat .exe wrap iexpress」でググってみたら、 ってページを見つけたんだが、え!? iexpress って、Windows 標準搭載のツールなの???
マジかー、知らんかったー
これ、自己展開形式のアーカイブ作るツールらしいんだけど、アーカイブするファイルと展開後に実行するファイルを指定することで、自己展開形式の簡易インストーラーが作れるようだ。
で、ウイザード形式なので、適当にポチポチやってたら、サクッと出来たのだが、実行してみると
プロセス <Command.com /c
C:\Users\kou\AppData\Local\Temp\IXP000.TMP\hello.bat> 作
成エラーです。原因: 指定されたファイルが見つかりません。 [OK]
と言われて実行できない。
って、Windows 10 に Command.com なんてないでしょ?
何だ、このレガシーツールは!?
と思い、上で見つけた stackoverflow のページ見てみると .bat 食わせると Command.com 呼ぶから
AppLaunched=hello.batじゃなく
AppLaunched=cmd.exe /c hello.batにしとけみたいなアドバイスが。
ウイザードで行った設定は .SED (SelfExtraction Directive) ファイルに保存されるので、
それ編集して、
iexpress /N hello.SEDみたいにすれば、.exe の再生成ができるので、
アドバイス通り .SED 書き換えてみたら上手く動いた。
で、「テピタスの参考書」のページではそういうエラー出ずに上手く行ってね?と思い、きちんと読んでみたら、なんか、直接 .bat 呼ばずに .cmd から .bat 呼ぶ二度手間してるのね。
ということで、hello.bat を hello.cmd にリネームして、.SED もそれに合わせてみたら、cmd.exe /c 指定しなくても
AppLaunched=hello.cmdで大丈夫だった。
タグ
コメントをかく