5

iexpress2つのexeファイルと1つのmsiファイルを実行するバッチファイルを実行しようとしています。手動でやろうとするとうまくいきます。

以下は私のバッチファイルのコードです。

Start /wait %CD%\1.exe /q
Start /wait %CD%\2.exe /q
msiexec.exe /i "%CD%\3.msi" 

しかし、iexpressからexeファイルを作成すると、これが機能していないようです。 ここに画像の説明を入力

参照

上記の記事にはいくつかのコード(ファイルを一時フォルダーにコピーするため)がありますが、構文を理解できません。

MKDIR %Tmp%\<UNIQUE PRODUCT NAME>
XCOPY . %Tmp%\<UNIQUE PRODUCT NAME> /S /E /Y
%Tmp%\<UNIQUE PRODUCT NAME>\setup.exe
4

5 に答える 5

2

問題は、スクリーンショットからわかるように、バッチ ファイルがcommand.comではなくによって実行されていることcmd.exeです。(インタープリターを指定しない場合、IExpress はcommand.com. Ouch を使用します。) したがって、%cd%orのような変数はありません%~dp0

とにかくそれらはおそらく必要ありません。ただし、次のように IExpress でバッチ ファイルを明示的に実行する必要があります。

cmd.exe /c file.bat

最新のコマンド インタープリターを使用するようにします。

質問の 2 番目のコードは、ファイルを別のディレクトリに移動することにより、ファイルを永続化します (つまり、IExpress アーカイブの終了後に削除されません) xcopy

于 2012-12-04T21:48:30.670 に答える
2

これが意味することは次のとおりです。

1)MKDIR環境変数に格納されたパスに「UNIQUE PRODUCT NAME」という名前のディレクトリ( ) を作成します。このパス%TMP%は通常、C:\DOCUME~1\yourusername\LOCALS~1\Temp を指します。

MKDIR %Tmp%\<UNIQUE PRODUCT NAME>

2)次に、すべてのインストール ファイルを現在のフォルダーから以前に作成した新しいフォルダーに再帰的にコピーします。XCOPY 引数:

/S 空のディレクトリを除くディレクトリとサブディレクトリをコピーします。

/E 空のディレクトリとサブディレクトリをコピーします。と同じ/S /E。を変更するために使用でき/Tます。

/Y 既存の宛先ファイルを上書きするかどうかを確認するプロンプトを抑制します。

XCOPY . %Tmp%\<UNIQUE PRODUCT NAME> /S /E /Y

3)最後に、新しい場所 %Tmp%\\setup.exe からアプリケーションを実行します。

お役に立てれば

于 2012-05-04T12:42:47.657 に答える
0

このフォーラムでの議論に感謝します。最終的に、すべての msi ファイルと実行可能ファイルを 1 つの .exe ファイルにコンパイルすることができました。

次のように手順を完了し、バッチ ファイルを作成します。

echo on

SET CURDIR=%CD%

msiexec.exe /i "%CURDIR%\1.msi"

"%CURDIR%\3.EXE"

"%CURDIR%\setup.exe"

echo off

必要に応じて任意の数の exe ファイルまたは msi ファイルを配置し、バッチ ファイルを yourfile.bat として保存できます。ここで注意が必要なのは、Iexpress に進む前に、 http: //www.f2ko.de/programs.php?pid=b2e が提供するソフトウェアを使用してバッチ ファイルを exe に変換することです。

プログラムを実行するときは、「非表示のアプリケーション」をチェックしたままにして、コマンドプロンプトを非表示にします。exe をパスワードで暗号化することもできます。ファイルの実行が完了すると一時フォルダーが自動的に削除されるため、「終了時に削除」はオプションです。バッチ ファイルのコンパイルに成功したら、作成された .exe ファイルを実行します。ビンゴ!!コマンド プロンプト ウィンドウが表示されず、アプリケーションが順次実行を開始します。

Iexpress ツールを開始し、バッチ ファイルに存在するすべてのファイル (バッチ ファイルを除く) を追加します。[Install Program to Launch] 画面で、[Post Install Command ] を空白のままにして、[Install Program] ドロップダウンで次を見つけます:' demo.exeさらに進んで、単一パッケージの完全な束を作成します。乾杯!!

于 2013-09-25T10:39:59.237 に答える
0

あなたの %CD% は機能していません。CMD 拡張機能が有効になっていることを確認してください (CMD /x を有効にするには CMD /x を入力し、無効にするには CMD /y を入力します)、このコードで %CD% を展開してください

SET CURDIR=%CD%
Start /wait "%CURDIR%\1.exe" /q 
Start /wait "%CURDIR%\2.exe" /q 
msiexec.exe /i "%CURDIR%\3.msi" 

また、セキュリティ上の理由から、その場所 (APPDATA) から exe を起動できるかどうかもわかりません。

于 2012-05-04T12:43:13.713 に答える
0

で置き換え%CD%てみてください%~dp0

1.exe がバッチ スクリプトと同じフォルダーにあると仮定します。

于 2012-05-04T12:40:52.690 に答える