最近做的一个项目中需要用到一个用法,就是用window默认的程序执行带指定后缀名的文件。比如看到doc文件,主动利用Word执行,而不需要去找word的安装位置,传统的os.system中需要找到word的安装位置才行。


查资料找到一种方法,就是利用cmd命令来执行。cmd是windows的命令行程序,类似于linux中的terminal。在cmd中有这种两个参数可以做到这一点,分别是/c和/k。cmd /c file指的是执行完file后关闭命令窗口。因为用了cmd,所以默认会打开一个命令窗口。而cmd /k file则表示执行完file后不关闭命令窗口。有些同学说,我不想看到命令窗口怎么办呢?也有办法,那就是加start参数,也就是cmd /c start file,这表示打开一个新的窗口来执行file,而原窗口会关闭。新的窗口指的是执行程序的窗口,而老的窗口代表cmd的窗口。完美解决这个问题。


同时在使用cmd访问文件夹时还会遇到一个问题:当输入的文件夹路径含有空格时,cmd会截取前一段,比如,cmd /c start C:\Program Files时,会报错“Windows找不到‘C:\Program'。请确定文件名是否正确后,再试一次。”,这时的解决方式是cmd /c start "" "C:\Program Files",就可以解决这个问题了。