要在控制台程序里面调用dos命令可以使用system函数,如system("dir");会把当前目录下的文件列表显示出来。
但如果在可视化窗口界面调用这个命令则会出现一个小问题了
1 调用命令时会出现一个dos窗口一闪而过,影响视觉效果。
2 无法将命令的执行结果反馈给用户。
所以我们要用另外一个函数来解决这个问题:WinExec。(注1)
WinExec的作用是运行指定的程序,其中第一个参数是程序的路径及参数,第二个参数是定义了以怎样的形式启动程序的常数值(详细请见msdn)。
比如我们要获得当前目录下的文件列表,可以这样
WinExec("cmd.exe /c dir > result.txt", SW_HIDE);
执行这行代码后,将会在当前目录下生成一个result.txt的文件,文件的内容就是执行dir命令的输出(注2)。并且不会出现dos窗口(SW_HIDE代表隐藏窗口)
有时候我们需要同时执行数条语句,是不是要执行多次system调用呢?
答案是否定的,dos自身提供了执行多条命令的功能,符号&&代表同时执行多条命令。
如“cd C:/demo && dir”会首先将目录切换到 C:/demo文件夹,然后执行dir命令。
利用&&命令可以实现这样的功能:暂停等待用户按下任意键,接下来执行某个命令。
如:pause && dir 会在屏幕上显示“请按任意键继续”和,在用户按下任意键后会执行dir命令输出文件列表。