我尝试创建一个简单的UI,在后台运行命令提示符(但Windows控制台不能消失),同时单击每个按钮,分别为
。但之前,我尝试使用system("start dir");
之类的内容来查看按钮是否有效。
问题在于:当我点击左侧按钮时,Windows控制台出现并且不退出单元我关闭它。但这仅适用于system("start dir");
。如果我将 dir 更改为 ipconfig (或其他调用函数),则Windows控制台将显示一秒钟并退出。我试过像system("PAUSE");
或getch();
之类的东西,但它不起作用。
为什么此命令适用于 dir ,但不适用于其他命令?
答案 0 :(得分:2)
DIR和IPCONFIG之间存在根本区别,DIR命令内置于命令处理器(也称为shell)中,IPCONFIG是存储在c:\ windows \ system32中的单独程序。
键入START /?在命令行,你可以看到它为什么以不同的方式对待它们:
If it is an internal cmd command or a batch file then
the command processor is run with the /K switch to cmd.exe.
This means that the window will remain after the command
has been run.
If it is not an internal cmd command or batch file then
it is a program and will run as either a windowed application
or a console application.
另一种方法是让命令处理器执行命令并在之后退出。你使用/ c选项:
system("cmd.exe /c dir");
或者更简单,因为system()会自动将作业传递给命令处理器:
system("dir");
停止使用start:)