Powershell: Appel de l'opérateur (&) avec évacuation param (--%) ne fonctionne pas avec les non-statique args

Mon script Powershell doit invoquer un fichier EXE avec un très compliqué d'arguments. Je suis à l'aide de Powershell 3.0, et doit s'en tenir à cette version. Hélas, même la "magie" s'échappant de l'opérateur (--%) n'est pas de m'aider. Par exemple, à l'aide de l'opérateur d'Appel, pensez à ceci:

& other.exe --% action /mode fast /path:"location with spaces" /fancyparam { /dothis /dothat:"arg with spaces" } /verbose

Maintenant, si c'était si simple, mon script peut facilement fonctionner correctement. Mais il n'est pas simple. Les arguments pour "other.exe" peut être différent, selon les sélections de l'utilisateur au début de mon script. Donc, au lieu de cela, j'ai besoin de construire ces paramètres à l'avance, peut-être comme ceci:

$commandArgs = 'action /mode ' + $userMode + ' /path:"location with spaces" /fancyparam { /dothis /dothat:"' + $userArgs + " } /verbose'

Donc je voudrais appeler de cette façon:

& other.exe --% $commandArgs

...eh bien, s'attendre à ce que --% signifie qu'il transmet simplement une chaîne brute de $commandArgs à la place. Mais sans le --%, powershell auto-cite le contenu de $commandArgs, qui bousille l'intérieur des guillemets (pour ne pas mentionner la rupture de "l'action" argument à l'avant qui other.exe les besoins de première). En d'autres termes, j'ai déjà essayé l'intégration de la --% à l'intérieur de mon $commandArgs la chaîne, mais le mal est déjà fait par le temps, il serait analysée (et je ne pense pas que cela fonctionne de cette façon).

NOTEZ que cet exemple n'est que d'environ 1/4 de ma commande j'ai besoin d'exécuter -- qui comprend beaucoup plus de l'utilisateur args, des citations et autres drôles de personnages que me conduire à s'échapper-l'enfer dans un dépêchez-vous! J'ai également déjà été à l'aide de la echoargs.exe l'outil, qui est la façon dont je vois les problèmes que je vais avoir. Oh, et j'ai besoin de tous les espaces dans mon exemple, trop (c'est à dire le besoin d'espaces autour de l'attache de caractères).

Donc, après beaucoup de recherches pour la réponse, je me tourne vers vous pour de l'aide. Merci à l'avance.

InformationsquelleAutor SteveDJ | 2014-01-27