我有一个关于在c ++中执行shell命令的问题。我正在使用winforms构建一个应用程序,与2008年相比。我的应用程序有一个按钮,单击时应将二进制文件解码为.csv文件。我可以通过首先转到正确的目录(cd Test_Copy2)然后在命令提示符(java -jar tool.jar -b x.fit x.csv)中执行命令来解码文件。我尝试了很多不同的东西,但不幸的是没有工作!
我尝试使用:
system, _popen, ShellExecute(NULL, L"open", L"C:\\WINDOWS\\system32\\cmd.exe ", L"java -jar Tool.jar -b x.fit x.csv", L"C:\\Test_Copy2", SW_SHOWNORMAL)
有谁能请我提供一个如何做到这一点的例子?我不知道我哪里出错了,大多数时候命令提示符打开但没有执行命令!
答案 0 :(得分:1)
如果您确实想在cmd.exe实例中运行jar,则需要将一个正确的命令行开关添加到cmd.exe,以使其按照您希望的方式工作:
/C Carries out the command specified by string and then terminates
/K Carries out the command specified by string but remains
例如,您的命令字符串应为:
C:\\WINDOWS\\system32\\cmd.exe /c java -jar Tool.jar -b x.fit x.csv
答案 1 :(得分:1)
您可以使用system()
函数执行shell命令。
例如:
system("DIR")
在CMD shell中执行DIR命令。开头的默认目录是您.exe
文件所在的目录。
'system(“PAUSE”)`执行PAUSE命令。
您要执行的命令应作为常量字符串传递给函数。
对于你的paritcular程序,语法(IMO)将是:
system("java -jar Tool.jar -b x.fit x.csv")