我必须在C ++中使用system()
运行以下批处理文件命令。但是,我无法正确接受命令。
如何在C ++中使用正确的语法编写以下命令?
CALL install\setup.exe /s /v" /qn "KEY=0000-0000-0000-0000-0000" SHORTCUT=0 INSTALLDIR=\"C:\\Program Files\\Install\\Setup\" /l+*v "%SYSTEMROOT%\Setup.log""
下面是我的c ++代码。
int main()
{
system("\"install\setup.exe\" /s /v /qn KEY=0000-0000-0000-0000-0000 SHORTCUT=0 INSTALLDIR=\ C:\\Program Files\\Install\\Setup\ /l+*v %SYSTEMROOT%\\Setup.log");
system("\"C:\\Program Files\\install\\Setup\\setup.exe\" no");
system("\"C:\\Program Files\\install\\Setup\\setup.exe\" adder add -y Administrator");
system("\"C:\\Program Files\\install\\Setup\\setup.exe\" adder add -y user1");
system("\"C:\\Program Files\\install\\Setup\\setup.exe\" adder add -t Device run.exe");
}
答案 0 :(得分:2)
您需要转义\
字符,就像使用"
一样。
这实际上意味着你需要加倍它们,最终会出现类似可怕的事情:
system("\"install\\setup.exe\" ... INSTALLDIR=\\\"C:\\\\Program Files\\\\Inst...
我建议你从一些参数开始,当你检查它是否正常工作时,逐步添加剩下的参数。当您错过\
时,它将使调试变得更容易。