2017-10-02 1 views
-2

Je dois écrire le numéro de série (texte) d'une commande textBox à cmd en utilisant startInfo.Arguments. Le point principal est, toutes les recherches que j'ai faites ici ont pointé pour remplacer le texte au début ou à la fin des arguments. Mais je dois insérer le texte du textBox au milieu de l'argument, comme ceci:Copie de données de textBox vers cmd en utilisant startInfo.Arguments

string input1 = textBox1.Text; 
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
startInfo.UseShellExecute = false; 
startInfo.RedirectStandardOutput = true; 
startInfo.FileName = "CMD.exe"; 
startInfo.Arguments = "/c adb -s "textBox1.Text" shell dumpsys battery"; 

Toute aide sera appréciée. Je vous remercie.

+0

Regardez clairement dans les tutoriels C# de base. Il s'agit d'une simple concaténation/interpolation de chaîne. –

+0

Vous concaténez les chaînes avec '+'. Par exemple. "un" + "deux" '. – Blorgbeard

+0

Avez-vous essayé la concaténation de chaîne normale? 'startInfo.Arguments ="/c adb -s "+ textBox1.Text +" batterie de décharges de shell ";' – Alejandro

Répondre

0

Le contenu de la zone de texte a déjà été stocké dans la variable input1.

Maintenant, nous avons plusieurs options pour le faire en C#:

startInfo.Arguments = String.Format(@"/c adb -s ""{0}"" shell dumpsys battery", input1); 

(dans la notation @ string, guillemets doubles sont conservés dans la chaîne résultante en les doublant)

ou avec concaténation:

startInfo.Arguments = "/c adb -s \"" + input1 + "\" shell dumpsys battery"; 

(les guillemets doubles échappé backslash-préserveront la double citation dans la chaîne résultante)

ou, récemment, nous pouvons utiliser l'interpolation de chaîne:

startInfo.Arguments = [email protected]"/c adb -s ""{input1}"" shell dumpsys battery"; 

Quoi qu'il en soit, envisager de valider la valeur avant tout exécuter vous avez obtenu d'un utilisateur, en particulier quand il est lancé avec des privilèges d'administrateur.

+0

bonjour, merci! Mais j'ai essayé les commandes mais aucune n'a eu d'effet! –

+0

@ClaudeHitech Qu'entendez-vous par * "none was effect" *? Quelle est la valeur de 'startInfo.Arguments' après avoir essayé l'une de ces réponses? –

+0

Salut Rufus, le contenu de l'argument est le numéro de série de l'appareil: ce022111a3a6766e02. Si je stocke cette valeur dans le champ d'argument, après le -s, cela fonctionne normalement. –