Par exemple, dans la ligne de commande, cela fonctionne (le 1er argument contient des citations, mais le 2e argument ne le fait pas): "Test.bat" "a" b c'est-il savoir que "A" est le 1er argument et B est le deuxième p>
mais à l'aide du système (), cela ne fonctionne pas:
Cela ne fonctionne pas non plus:
Système ("Test.bat" "A" B) CODE> P>
système ("test.bat" \ "a \" b) code> p>
3 Réponses :
J'ai trouvé la réponse: ou plus précisément: La réponse est donc d'échapper aux devis avec une double citation p> système ("Test.bat" "" A "" B); Code> P>
système ("\" test.bat \ "" "" A "" B "); CODE> P>
Doubles citations n'échappent rien. "a" "b" code> est identique que "a" "b" code> identique que "ab" code> car espace blanc concaténé.
Cela va être la plus simple si nous utilisons un littéral à chaîne brut. Un littéral à chaîne brut est une façon d'écrire une chaîne en C ++ où rien ne s'échappe. Regardons un exemple: le dans la ligne de commande. Maintenant, supposons que vous souhaitiez échapper aux citations de la ligne de commande: p> avec un littéral à chaîne brut, c'est simple: p> r code> au début indique qu'il s'agit d'un littéral à chaîne brut, et si vous appelez système (myCommand) Code>, il sera exactement équivalent à taper p> string d = R"x(Hello)x"; // d == "Hello"
Cela ne fonctionne pas pour moi, par exemple: "c: \ to effacer \ test.bat" b "" A "fonctionne dans la ligne de commande, mais système (r" ("c: \ to effacer \ test.bat" " un B)"); ne fonctionne pas. Notez que le système (r »(« c: \ to effacer \ test.bat »a b)"); travaille mais ce n'est pas ce que je veux, et le système (r "(" c: \ to effacer \ test.bat "\" a \ "b)"); ne fonctionne pas non plus.
Pourriez-vous mettre à jour votre question pour inclure la commande exacte que vous souhaitez exécuter à partir de la commande Commandline, ainsi que le message d'erreur que cela vous donne? (Si cela vous en donne un?)
Je l'ai eu pour travailler maintenant:
system(R"(C:\"to erase\test.bat" "a")");
Nous aimerions aider. Veuillez vous reporter à Comment créer un exemple minimal, complet et vérifiable