.bat 文件:只执行第一行 - 为什么?

use*_*193 13 windows batch wget

我有第一个 .bat 文件 down.bat,用于从 apple.com 下载电影预告片:

C:\wget.exe -U "QuickTime/7.6.2" %1
Run Code Online (Sandbox Code Playgroud)

我还有第二个文件 batch.bat 和我想下载的所有预告片:

down http://trailers.apple.com/movies/ifc_films/enterthevoid/enterthevoid-tlr1_h1080p.mov
down http://trailers.apple.com/movies/fox/vampiressuck/vampiressuck-tlrc_h1080p.mov
down http://trailers.apple.com/movies/universal/skyline/skyline-tlr1_h1080p.mov
down http://trailers.apple.com/movies/sony_pictures/takers/takers-tlr2_h1080p.mov
Run Code Online (Sandbox Code Playgroud)

当我从 cmd.exe 运行它时,只有第一个预告片被下载,就像 batch.bat 文件中只有一行一样。

如何让它正常工作?

JaH*_*Hei 28

在batch.bat 中,在每一行之前插入CALL。

例子:

CALL down http://trailers.apple.com/movies/ifc_films/enterthevoid/enterthevoid-tlr1_h1080p.mov
CALL down http://trailers.apple.com/movies/fox/vampiressuck/vampiressuck-tlrc_h1080p.mov
CALL down http://trailers.apple.com/movies/universal/skyline/skyline-tlr1_h1080p.mov
CALL down http://trailers.apple.com/movies/sony_pictures/takers/takers-tlr2_h1080p.mov
Run Code Online (Sandbox Code Playgroud)

这样做的原因是,如果你只是从另一个启动一个bat文件,只有一个会退出,而如果使用CALL,当被调用的bat文件退出时,调用的bat文件会继续执行。