2017-07-11 23 views
1

私はPowershellのスニペットを持っています。私はスイッチのリストを使って外部の実行ファイルを呼び出す必要があります。Powershellで実行可能ファイルのパラメータのリストを作成するにはどうすればよいですか?

& $pathToExe 
     --project $project ` 
     --server $server ` 
     --apiKey $key ` 

は今、私は「$someVariable -eq $Trueた場合、その後も--optionalSwitch $someValueを追加する」のような何かをする必要があります。

これを繰り返し行うことなく、どうすればいいですか?参考までに、実際のexe呼び出しはこれよりもはるかに大きく、オプションのスイッチのリストはもっと大きいです!

+0

exeファイルの意志を反復することにより、コマンド文字列を構築します'--project:$ project --server:$ server'(スイッチと引数の間のスペースではなく、': ')の形式で引数を受け取ります - もしそうなら、スプラッティングではほんとうにです –

+0

これは、しかし、 '--debug'のような関連する値を持たないものもあります。あなたの提案はまだそれらのために働くでしょうか? – NeilD

答えて

3

パラメータとその値を含むハッシュテーブルはどうですか。値なしで、キーを除外して、コレクションをフィルタリングし、パラメータ文字列を構築するためにそう、

$ht = @{} 
$ht.Add('project', 'myProject') 
$ht.Add('apikey', $null) 
$ht.Add('server', 'myServer') 

同様:

$pop = $ht.getenumerator() | ? { $_.value -ne $null } 

フィルター処理されたコレクション

$cmdLine = "myExe" 
$pop | % { $cmdLine += " --" + $_.name + " " + $_.value } 
# Check the result 
$cmdLine 
myExe --server myServer --project myProject 
関連する問題