在C ++中运行CMD行使用变量(不是字符串文字)作为Params

时间:2017-02-13 13:02:46

标签: c++ cmd

我已经在CMD窗口中执行了此命令并且它可以正常工作。我现在需要在2015年VC ++程序代码中运行它,但我无法得到它。 我已经阅读过处理这个问题的各种帖子,但它们主要用于字符串文字而且我有变量。我认为这会抛弃双引号。如果有更好/更安全的方式,我不必使用_wsystem。

更新:

command = "C:\Users\Valued Customer\Documents\Visual Studio 2015\Projects\svn_3dg_wc\x64\Debug\MyAppD.exe" /q /a "C:\Users\Valued Customer\Documents\Visual Studio 2015\Projects\svn_3dg_wc\Samples\New folder\C - Copy (2).abc"

它仍然无法从VC ++应用程序运行.. const eventObj = {}; 如果我从调试器复制值并粘贴到CMD窗口,它就可以工作 有任何想法吗?

1 个答案:

答案 0 :(得分:0)

在调用_wsystem之前在最后一步中添加的引号将整个字符串转换为单个命令。需要引号将命令中以空格分隔的“单词”分组。

param的内容应该类似于

"C:\Users\Valued Customer\Documents\Visual Studio 2015\Projects\svn_wc\x64\Debug\MyApp.exe" /q /a "C:\Users\Valued Customer\Documents\Visual Studio 2015\Projects\svn_3dg_wc\Samples\New folder\C - Copy (2).abc"

请注意,引号内的/q /a部分不是,只有文件的路径(包含空格,因此需要引号)。

另请注意,任何地方都没有多个引号,只有单引号。