J'avais l'air de regarder cette question sur Passage des arguments de ligne de commande en C # a >. Mais dans mon cas, je dois transmettre des paramètres au fichier Calling .exe. p> est-il possible de Utilisez J'ai le chemin .exe p> processus.start () code> avec chemin EXE avec le tableau P>
3 Réponses :
Veuillez essayer ceci:
var arr = new string[] {"Item title", "New task", "22", "High Priority"}; const string path = @"C:\Projects\Test\test.exe"; const string argsSeparator = " "; string args = string.Join(argsSeparator, arr); Process.Start(path, args);
Et comment saura-t-il si l'espace fait partie de l'argument ou du séparateur? :RÉ
@Grzegorzwilczura alors peut-être que string args = string.join ("", arr.select (e => "\" "+ e +" \ "")); >?
@Grzegorzwilcura Si le séparateur n'est pas de l'espace, il peut utiliser un autre séparateur :) change simplement un const. Merci pour le commentaire.
Si cela fait "correctement" et travailler pour Arguments arbitraires i>, c'est un peu plus compliqué . Fondamentalement, vous devez appliquer les règles de Commandlinetoargv mais en sens inverse. Voir aussi cette réponse .
Cette réponse est tellement erronée. S'il vous plaît voir Cette réponse
Ne fais jamais ça. Sinon, nous ne vous débarrasserons jamais de toutes ces applications SH * TTY qui ne peuvent même pas partir d'un répertoire avec des espaces dans le chemin.
Ce n'est pas possible de passer une array comme argument, vous pouvez transmettre une chaîne avec séparateur de virgule:
ProcessStartInfo info = new ProcessStartInfo(); info.Arguments = "Item title,New task,22,High Priority"
Une option consiste à placer la matrice dans une chaîne afin qu'elle soit considérée comme un argument par la méthode. Dans votre méthode, vous pouvez ensuite analyser cet argument. Quelque chose comme: Vous pouvez utiliser votre matrice existante en faisant: p> à l'intérieur de votre méthode, faites: p> var values = argument.Split(',').Select(x => x.Trim());
Dupliqué possible de Escape Commande Arguments en C #
La plupart des réponses dans cette question sont erronées, mauvaises, incomplètes ou moins dangereuses lorsque les arguments contiennent des caractères spéciaux tels que des citations ou des espaces blancs. S'il vous plaît voir Cette réponse