2016-05-19 21 views
1

Inno Setupを使用してコマンドラインからWindows 10にサービスとしてTomcatをインストールしようとしていますが、現在問題が発生しています。Inno Setupインストーラから実行された非動作バッチファイルまたはコマンドのデバッグ

[Run] 
Filename: net.exe; Flags: runascurrentuser; parameters: "user elt_user TrackFox38# /add" 

; installs tomcat makes it run as a service NOTE THAT IN INNO THIS IS A SINGLE LINE 
Filename: {src}\..\apache-tomcat-7.0.69\bin\service.bat; Flags: runascurrentuser; parameters: "tomcat7 //IS//Tomcat7 --DisplayName='Apache_Tomcat_7'^--Install='C:\Program Files\Tomcat\bin\tomcat7.exe' --Jvm=auto^--StartMode=jvm --StopMode=jvm^--StartClass=org.apache.catalina.startup.Bootstrap --StartParams=start^--StopClass=org.apache.catalina.startup.Bootstrap --StopParams=stop" 

奇妙なことは、手動でコマンドラインに貼り付けると機能することです。最初は私はそれがパーミッションの問題だと思ったが、net.exeコマンドが動作し、Tomcatがそれを質問しないという事実。また、私は管理者に設定する必要がある特権を持っているので、私はそのユーザーの問題はないと思うので、インストーラを起動するには管理者権限が必要です。私はInno Setupが初めてで、ちょっとここにこだわっています。

デバッグ出力:バッチファイル(または任意のコマンド)を実行

[09:18:54.770] Filename: C:\program\Output\..\apache-tomcat- 7.0.69\bin\service.bat 
[09:18:54.771] Parameters: tomcat7 //IS//Tomcat7 --DisplayName='Apache_Tomcat_7'^--Install='C:\Program Files\Tomcat\bin\tomcat7.exe' --Jvm=auto^--StartMode=jvm --StopMode=jvm^--StartClass=org.apache.catalina.startup.Bootstrap --StartParams=start^--StopClass=org.apache.catalina.startup.Bootstrap --StopParams=stop 
[09:18:54.867] Process exit code: 0 
+0

変更するエントリ: 'ファイル名:{CMD}。フラグ:runascurrentuser;パラメータ: "/ k {src} \ .. \ apache-tomcat-7.0.69 \ bin \ service.bat tomcat7 // IS // Tomcat7 ..." 'コマンドが終了すると、コンソールウィンドウが開いたままになります。それが何であるかを確認してください。 –

+0

+私はそれらの '^'がそこにいてはいけないと確信しています。しかし、彼らはおそらくまた、すべてが宇宙に先行している限り、害を及ぼさないでしょう。 –

+0

+あなたの質問にログを編集して、それを読めるようにすることはできますか? (その後、コマンドを削除してください)。 –

答えて

1

、その結果(またはエラー)はすべてのいずれかで表示されません(runhiddenフラグを使用する場合は特に)、または素早くその姿を消しますあなたはそれらを読むことができません。その場合

cmd.exeを経由して明示的にコマンドを実行します(バッチファイルを実行するときにInno Setupのは自分自身で暗黙のうちにそれをしない)が、今回の代わりに、より一般的な/Cスイッチの/Kスイッチ付き。 /Kスイッチは、コンソールウィンドウがそれ自身で閉じないことを保証します。

ので、代わりの:

[Run] 
Filename: {app}\setup.bat; Parameters: "arguments" 

または同等:

[Run] 
Filename: {cmd}; Parameters: "/C ""{app}\setup.bat"" arguments" 

用途:

[Run] 
Filename: {cmd}; Parameters: "/K ""{app}\setup.bat"" arguments" 

次に、コンソールウィンドウがsetup.bat終了後にとどまり、あなたが最終的なエラーを見ることができます。

実行中のコマンドを隠すコマンド@echo offがバッチファイルから始まる場合は、この行を一時的にコメントアウトしてremとすると、デバッグに役立ちます。

enter image description here

関連する問題