2016-08-16 4 views
0

私はpowershellコマンドを実行しようとしていますが、私はpowershellコマンドがうまく動作することを知っていますが、innoscriptを使って実行しようとすると、powerscriptを開き、コマンドを表示します。InnoScript Run PowerShell Commands

私は基本的にMySql設定テキストファイルのテキストを変更しようとしています。私はShellExecフラグを使用する場合は

これは私のコード

Filename: powershell.exe; Parameters: "-NoExit {{(Get-Content \""{code:GetConfigPath}\my.ini\"") | ForEach-Object {{ $_ -replace \""max_connections=[0-9]+$\"", \""max_connections=10000\"" } | Set-Content \""{code:GetConfigPath}\my.ini\""}"; StatusMsg: CHANGING MAX CONNECTIONS; Description: CHANGING MAX CONNECTIONS; Flags: runascurrentuser 

あり、それは私が実行したとき、私は、同じ結果を得るPSReadLineは、PowerShellの enter image description here

+0

PSReadLineを意味しましたか? –

+0

はい、それは私が意味したものです – FillyPajo

+0

最初のパラメータとして '-NoProfile'を試してください –

答えて

1

スクリーンショット利用できないことを言いますあなたのコマンドを直接。ですからあなたの質問はInno Setupとは何の関係もありません。


コマンドが作業できるようにするには、単に最も外側のブラケットを取り外します。

Filename: powershell.exe; Parameters: "-NoExit (Get-Content \""{code:GetConfigPath}\my.ini\"") | ForEach-Object {{ $_ -replace \""max_connections=[0-9]+$\"", \""max_connections=10000\"" } | Set-Content \""{code:GetConfigPath}\my.ini\"""; StatusMsg: CHANGING MAX CONNECTIONS; Description: CHANGING MAX CONNECTIONS; Flags: runascurrentuser 
+0

大括弧なしでは、コマンドプロパティを実行せず、my.iniファイルのほぼすべてのテキストを削除します – FillyPajo

+1

OK、私の答えは大括弧で囲まれています。今修正されました。しかし、私の推薦はまだ成り立っています。最も外側の括弧を削除するだけです。 –

+1

なぜこれが起こっているのか説明するために、元のPowerShellコードは新しいScriptBlockを定義しますが、実行したり、変数に割り当てたりしません。したがって、パイプラインを下るオブジェクトになります。それは 'Out-Default'をヒットし、フォーマットエンジンに送られ、それをスクリーンに印刷する文字列に変換します。 外側の括弧を削除すると、実際に実行する一連のコマンドが定義されます。 – JasonMArcher