暂停Perl脚本,直到外部程序完成
本文关键字:外部 程序 Perl 脚本 暂停 | 更新日期: 2023-09-27 18:10:01
我在c#中编写代码,所以我对perl了解不多,但我想运行下面的代码,并让perl脚本等待,直到myprogram.exe完成,然后再继续执行脚本。经过一番研究,我发现perl中的系统函数应该等待进程完成后再继续
my $cmd = ''''serverpath'Shared'myprogram.exe ';
my $result = system("start /LOW $cmd pram1");
my $cmd2 = ''''serverpath'Shared'openPDF.pdf ';
my $result2 = system("start /LOW $cmd2 ");
然后没有运气与系统功能,我认为问题是,我的程序(写在c#)不返回一个值,所以我把它改为类似下面的东西,但perl脚本仍然继续后,它调用myprogram.exe
static int Main(string[] args)
{
try
{
Run_Main();
return 0;
}
catch (Exception)
{
sendEmail();
return 1;
}
}
@Luk6e发现start
在后台运行命令,导致system
没有等待。启动不带start
的命令:
my $cmd = ''''serverpath'Shared'myprogram.exe ';
my $result = system("$cmd pram1");
my $cmd2 = ''''serverpath'Shared'openPDF.pdf ';
my $result2 = system("$cmd2 ");
或通过/wait
标志:
my $cmd = ''''serverpath'Shared'myprogram.exe ';
my $result = system("start /wait /LOW $cmd pram1");
my $cmd2 = ''''serverpath'Shared'openPDF.pdf ';
my $result2 = system("start /wait /LOW $cmd2 ");
/w[ait]直到其他程序退出才返回。