web-dev-qa-db-ja.com

[実行]セクションに引用符が付いたInnoSetupパラメーター

[Run]セクションを使用して、コマンドラインをサポートするcommandmerit.exeで一部のコーデックのメリット値を変更します。

したがって、構文は次のとおりです。

Commandmerit.exe "{E2B7DF46-38C5-11D5-91F6-00104BDB8FF9}" "0x800000"  

{E2B7DF46-38C5-11D5-91F6-00104BDB8FF9}はコーデックのCLSIDであり、0x800000は新しいメリットの値ですが、この行を[Run]セクションに配置すると:

Filename: "{app}\Commandmerit.exe"; Parameters: ""{F8FC6C1F-DE81-41A8-90FF-0316FDD439FD}" "0x10000000""; WorkingDir: "{app}"

流れるエラーが表示されます。

パラメータの引用符の不一致または配置ミス。

私がこの行を置くと:

Filename: "{app}\Commandmerit.exe"; Parameters: """{F8FC6C1F-DE81-41A8-90FF-0316FDD439FD}" "0x10000000"""; WorkingDir: "{app}"

流れるエラーが表示されます:

不明な定数...... 2つの連続した "{"を使用する場合...。

私がこの行を置くと:

Filename: "{app}\Commandmerit.exe"; Parameters: """{{F8FC6C1F-DE81-41A8-90FF-0316FDD439FD}}" "0x10000000"""; WorkingDir: "{app}"

その後、エラーは表示されませんが、commandmerite.exeがパラメータを理解していないようです。そのため、インストーラが終了した後もメリットは変わりません。

23
david cooper

パラメータに引用符を追加するには、各引用符を2倍にしてから、値全体を引用符で囲む必要があります。

2回目の試みは間近でしたが、真ん中の試みを忘れました。

Filename: "{app}\Commandmerit.exe"; Parameters: """{F8FC6C1F-DE81-41A8-90FF-0316FDD439FD}"" ""0x10000000"""; WorkingDir: "{app}"
38
Deanna

私はあなたの中に2つの異なるものを見ることができます問題

まず、{は定数の始まりであるため、innosetupで特別な意味を持ちます。したがって、{を2倍にしてエスケープする必要があります。たとえば、 {{。閉じ括弧は定数の開始である場合にのみ定数の終了として扱われるため、閉じ括弧をエスケープする必要はありません。

次に、文字列の一部として"を渡そうとしているということですが、コマンドラインパラメータの"文字の目的は使用を許可することであるため、この場合は不要のようです。単一のパラメーター内の空白スペースの数ですが、どのパラメーターにもスペースがありません。

そうは言っても、次のようにコマンドを書いてみてください。

[run]
Filename: "{app}\Commandmerit.exe"; Parameters: {{F8FC6C1F-DE81-41A8-90FF-0316FDD439FD} 0x10000000; WorkingDir: "{app}"
5
jachguate