我正在尝试编写一个批处理文件来运行几个WORD和POWERPOINT文件,如下所示:
"C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE" "D:\Files\Literature\Literature Review\Literature-Review.docx" & "C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE" "D:\Files\Literature\Literature Review\outline.docx" & "C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE" "D:\Files\Literature\Questions to be asked\Questions to be asked.docx" & "C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE" "D:\Files\Presaentationen\1. Gruppemeeting\ToDo.docx" & "C:\Program Files (x86)\Microsoft Office\Office14\POWERPNT.exe" "D:\Files\Presaentationen\1. Gruppemeeting\Presentation_Englisch.pptx"
问题是只打开第一个文件。如果我关闭它,下一个打开,依此类推。但是我想同时打开它们。我该怎么办? (操作系统是Windows 7)
非常感谢。
答案 0 :(得分:0)
当cmd
运行GUI应用程序时,它不会等待它完成。 (应用程序是否窗口化(GUI)或控制台由其exe文件中的标志确定。)
但你可以使用
start /wait SomeGuiApp
迫使cmd
等待。
但是你似乎有相反的问题:它可能是&
。它被设计用于有条件地执行一个动作,该动作取决于前一个的返回值。但是返回值对于GUI应用程序并没有多大意义。
为什么不将它们作为单独的命令运行:在cmd
脚本的不同行上或用分号分隔(IIRC)。
请记住,通过命令扩展,您可以使用括号在if
等控制下拥有多行。
答案 1 :(得分:0)
"C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE" "filename1" "filename2" ...
应该在winword中打开每个文件。
如果您也希望打开powerpoint,则需要start
每个可执行文件
start "windowtitle" "C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE" "filename1" "filename2" ...
start "windowtitle" "C:\Program Files (x86)\Microsoft Office\Office14\POWERPNT.exe "filename3"
但您需要将/w
开关添加到以这种方式启动的最后一个可执行文件,否则将执行以下命令(您可能不需要)
此外,批处理将在wait
ed应用程序终止时继续,因此
start "windowtitle" "C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE" "filename1" "filename2" ...
start /w "windowtitle" "C:\Program Files (x86)\Microsoft Office\Office14\POWERPNT.exe "filename3"
会等到powerpoint退出然后继续,无论winword是否仍处于打开状态。
windowtitle
可能为空,但不应省略(即。如果需要,请使用""
,但不要忽略此元素)