2015-06-19 23 views
1

中用空格调用系统我试图使此系统调用工作。 它工作的情况下,存在地址没有空间,但如果有在地址空间...无法在参数

此调用拷贝从一个地方到另一个文件中这是行不通的。

如何在此代码中正确地转义空格?

char buffer[300]; 
snprintf(buffer, sizeof(buffer), "copy %s\\%s %s", AssistPath, apiFileName, path); 
system(buffer); 
+0

http://blogs.msdn.com/b/twistylittlepassagesallalike/archive/2011/04/23/everyone-quotes -arguments-the-wrong-way.aspx – Dummy00001

+0

@ Dummy00001,我没有时间阅读所有内容,也许你可以将它应用于我的代码?如果你已经知道正确的方法,并有兴趣帮助我... – ufosecret

+0

有人会帮我..... – ufosecret

回答

1

空间很重要吗?那你为什么不试试这个代码?

snprintf(buffer, sizeof(buffer), "copy \"%s\\%s\" \"%s\"", AssistPath, apiFileName, path); 
+0

不起作用。 cmd仍然无法识别第一个空格后的路径.. – ufosecret

+0

@ufosecret你能告诉我们你的测试用例的'AssistPath','apiFileName'和'path'吗? – ikh

+0

D:\ tt \ assist \ api.dll D:\ new – ufosecret

1

你或许可以使用周围事物的报价,可能有空格

"copy \"%s\\%s\" \"%s\"" 
+0

不起作用... :( – ufosecret