我从perl脚本调用bat文件.
由于bat文件需要很长时间才能执行,因此perl脚本不会等待bat文件完成并从下一行继续执行.
有没有办法我们可以暂停执行perl脚本,直到bat文件完成执行,然后在bat文件完成后恢复.
我写了这样的东西:
system ("start $bat_file");
print ("Hello");
Run Code Online (Sandbox Code Playgroud)
所以它甚至在bat文件完成之前打印你好.
其实我想要完成的是:
但由于它没有等待bat文件完成,因此复制失败,因为它试图复制一个不存在的文件夹,因为bat文件仍在处理中并且尚未生成输出文件.
注意:完成bat文件的时间不固定,每次都会更改.
您需要删除该start命令
如果没有该/wait选项,start将创建一个进程并立即返回
但根本没有必要start.你可以写
system($bat_file);
Run Code Online (Sandbox Code Playgroud)
达到你所要求的效果