スペースを含むパラメータをpowershellスクリプトに渡す際に問題があります。これだけのような、次のコマンドにパラメータを渡しますスクリプト内のスペースの前にパラメータ文字列の最初の部分でパラメータにスペースを含む文字列を渡す - powershell
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True, ParameterSetName='firewallCommand',Position=0,HelpMessage="Input Firewall Index")]
[string]$fwName,
[Parameter(Mandatory=$True, ParameterSetName='firewallCommand',Position=1, HelpMessage="Input Firewall Command")]
[string]$fwCommand)
を動作するようです:コマンドラインで
cprid_util -server $firewallIpAdd -verbose rexec -rcmd "$fwCommand"
場合私はこれを実行する場合
.\fwcommand_run.ps1 -fwName firewall-name -fwCommand "ps"
は、それがすべてでは動作しません:私はそれが動作これを実行する
.\fwcommand_run.ps1 -fwName firewall-name -fwCommand "ps -ef"
しかし、私は直接コマンドを起動する場合には、作業を行います。
cprid_util -server 10.1.128.4 -verbose rexec -rcmd ps -ef
$ fwCommand文字列を分割することで、この作業を取得するために管理はい、私はスクリプトとコマンドラインから引用符を削除して試してみました、私はまた、2×を追加し、二重引用符を試してみました私は一重引用符を使用しようとしました。かなり多くの順列。 – user1776732
呼び出し演算子 '&'を使ってみましたか? '&cprid_util ...' –
私はそれを分割して両方を通過させることでそれを得ることができました。決議を投稿します。 – user1776732