用ShellExecute执行cmd命令遇到的问题总结

  • Post author:
  • Post category:其他


1、如果命令中的路径包含空格,要把路径去掉头尾用双引号包含起来。

例:strPath = “”D:\\\”te st\\\”test.exe;(用“\”进行字符转义)


2、用变量传命令的时候,要在命令字符开始加上”/c”,不然命令不会执行。

例:strCommand = “/c ” + “date”;

ShellExecute(NULL, “open”, “cmd”, strCommand, NULL, SW_SHOW);


3、用SW_HIDE使cmd窗口静默执行

例:ShellExecute(NULL, “open”, “cmd”, strCommand, NULL, SW_HIDE);




4、命令行执行结果可以使用”>”来保存到文件。

例:ShellExecute(NULL, “open”, “cmd”, “/c date >D:\\test.txt”, NULL, SW_HIDE);


5、通过对比输出文件进行结果分析。


6、strCommand不支持直接使用..\,要使用相对路径可以用tempdir来实现。

例:假设text.txt在test.exe的上一层目录中,ShellExecute(NULL, “open”, “cmd”, “/c D:\\test\\test.exe “tempdir\\..\\..\\text.txt >D:\\test.txt”, NULL, SW_HIDE);