【发布时间】:2016-07-20 11:48:08
【问题描述】:
我正在从 perl 脚本调用一个 bat 文件。
由于 bat 文件需要很长时间才能执行,因此 perl 脚本不会等待 bat 文件完成并从下一行继续执行。
有没有一种方法可以暂停 perl 脚本的执行,直到 bat 文件执行完毕,然后在 bat 文件执行完毕后继续执行。
我是这样写的:
system ("start $bat_file");
print ("Hello");
所以它甚至在 bat 文件完成之前打印 hello。
其实我想要完成的是:
- 我的 bat 文件创建了一些文件
- 我想在 bat 文件完成后将这些文件复制到另一个位置。
但由于它没有等待 bat 文件完成,因此复制失败,因为它试图复制一个不存在的文件夹,因为 bat 文件仍在处理中并且尚未生成输出文件。
注意:完成bat文件的时间不是固定的,每次都会变化。
【问题讨论】:
-
您是否使用了
system、exec、qx或反引号`? -
是的,有。但这很大程度上取决于你在做什么。为此,我们需要一些代码示例。
-
是的,我使用了系统。我写了这样的东西:system("start $bat_file");
标签: perl