2017-07-22 1 views
1

Je vous serais reconnaissant si quelqu'un m'aide avec la petite tâche. Je veux passer un argument de ligne de commande à un script powershell (ce n'est pas un fichier). Supposons que je veux juste passer un argument que messagebox montrera.Comment passer des arguments à une ligne de commande powershell

powershell.exe -command "$str=$args[0];[System.Reflection.Assembly]:: 
LoadWithPartialName('System.Windows.Forms'); 
[System.Windows.Forms.Messagebox]::Show($str);" 'foo' 

Je veux que foo soit affiché dans la boîte de message. Je reçois un messagebox vide. Peut-être que j'ai raté quelque chose de petit.

+3

au lieu de '-command "code" arg',' faire -command « & { code} arg "' –

+0

merci Mathias, ça marche !!! – MickCic

+0

@ MathiasR.Jessen s'il vous plaît écrivez votre commentaire comme réponse, afin que personne d'autre ne perdent du temps. – JPBlanc

Répondre

1

Enveloppez la chose entière dans un scriptblock {} et utiliser l'opérateur d'appel & pour l'appeler avec un argument:

powershell.exe -command "& {$str=$args[0];[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms');[System.Windows.Forms.Messagebox]::Show($str)} 'foo'"