バッチファイルで一行ですむのに,
わざわざスクリプトを書くのはめんどくさい.
Batは↓の感じで書けば, USBメモリとかのドライブレターが
接続する度に変わる場合でも動く.
start %~d0%~p0\App\AppName\app.exe
これを, exeに変換するのに, Windows標準で付いている
iexpress.exeを使う方法がある.
しかし, iexpressで変換(正確には自動コマンド実行付きの圧縮)したexeでは
上のスクリプトは動かない.
まず, 圧縮を解凍すると, 解凍先がテンポラリディレクトリになり, そこが
カレントディレクトリとなる.
そのため, %~d0(BATファイルのあるディスクのドライブレター)と%~p0(同パス)を
展開すると, テンポラリディレクトリを指すようになってしまう.
2つめに, BATをiexpressでexeにすると, command.comでBATファイルが
起動されるため, "start"コマンドが使えなくなる.
よって, 文法的に正しくするには, "start"を省き
%~d0%~p0\App\AppName\app.exeと書かなければいけない.
もしくは, ファイルの拡張子をcmdにすると, cmd.exeで実行されるため,
先のコマンドのままでも文法的に正しくなる.
(iexpressでのexe作成時に, 実行するコマンド名が自動的に選択されなく
なるので, 手入力する必要有り)
ということで, PortableApps.comのランチャの作成は失敗.
0 件のコメント:
新しいコメントは書き込めません。