<p>Voici encore une autre methode sans <code>Invoke-Expression</code> mais avec deux variables (commande : chaine et parametres : tableau). Cela fonctionne bien pour moi. Supposons que <code>7z.exe</code> est dans le chemin systeme.</p>
<p>`$cmd = ‘7z.exe’<br>
$prm = ‘a’, ‘-tzip’, ‘c:\temp\with space\test1.zip’, ‘C:\TEMP\with space\changelog’</p>
<p>& $cmd $prm</p>
<pre><code class="lang-auto">
Si la commande est connue (7z.exe) et que seuls les parametres sont variables, alors ceci suffira
`$prm = 'a', '-tzip', 'c:\temp\with space\test1.zip', 'C:\TEMP\with space\changelog'
& 7z.exe $prm
</code></pre>
<p>Au passage, <code>Invoke-Expression</code> avec un seul parametre fonctionne aussi pour moi, par exemple ceci fonctionne</p>
<p>$cmd = ‘& 7z.exe a -tzip “c:\temp\with space\test2.zip” “C:\TEMP\with space\changelog”’</p>
<p>Invoke-Expression $cmd</p>
<pre><code class="lang-auto">
P.S. : Je prefere generalement la methode avec un tableau de parametres car il est plus facile a composer par programmation que de construire une expression pourInvoke-Expression`.</code></pre>