Kir*_*Koa 4 windows media perl system windows-media-player
我正在尝试编写一个Perl脚本,一个接一个地在Windows Media Player上运行目录中的视频n次.
出于某种原因,在第64次视频播放时,它会卡在系统上(1,@命令).
现在,该命令是"system(1,"C:\ Program Files(x86)\ Windows Media Player\wmplayer",$ path);" 在以下for循环中.
for (my $i = 0; $i < $n; $i++)
{
# do stuff
# Play video
system(1, "C:\\Program Files (x86)\\Windows Media Player\\wmplayer", $path);
sleep $duration + 1;
# do stuff
}
Run Code Online (Sandbox Code Playgroud)
我想知道为什么它一直停在第64个视频(我已经多次运行,它总是第64个).也许有人能更好地向我解释"system(1,@ commands)"?我所知道的是,在继续该程序之前,它不会等待@commands完成...或者如果有人知道关闭Windows Media Player的更好方法,那就太好了.=]
非常感谢!
ike*_*ami 10
您已达到可以同时运行的最大子进程数.收获那些已经完成使用的人waitpid.
或者,如果您不关心进程的退出代码,那么您可能会更幸运
system(qq{start /b "" "c:\...\wmplayer" "$path"});
Run Code Online (Sandbox Code Playgroud)