我从perl脚本调用bat文件.
由于bat文件需要很长时间才能执行,因此perl脚本不会等待bat文件完成并从下一行继续执行.
有没有办法我们可以暂停执行perl脚本,直到bat文件完成执行,然后在bat文件完成后恢复.
我写了这样的东西:
system ("start $bat_file");
print ("Hello");
Run Code Online (Sandbox Code Playgroud)
所以它甚至在bat文件完成之前打印你好.
其实我想要完成的是:
但由于它没有等待bat文件完成,因此复制失败,因为它试图复制一个不存在的文件夹,因为bat文件仍在处理中并且尚未生成输出文件.
注意:完成bat文件的时间不固定,每次都会更改.
在下面的代码中,我期望ScheduleRequestWrite()中的输出为:5,10
sub ProcessItem
{
my @writeVal = ("5,10");
foreach my $str (@writeVal)
{
print "\nProcessItem = $str\n";
}
ScheduleRequestWrite(\@writeVal);
}
sub ScheduleRequestWrite()
{
my @write_value = $_[0];
foreach my $str (@write_value)
{
print "\n$str\n";
}
}
ProcessItem();
Run Code Online (Sandbox Code Playgroud)
但我得到:ARRAY <0x2ccf8>
谁能帮助我指出我的错误.提前致谢!
我想创建一个QAction对象向量,我编写了以下代码:
std::vector<QAction> test;
for (quint16 tt = 0; tt < 5; tt++)
{
test.push_back(QAction(this));
}
Run Code Online (Sandbox Code Playgroud)
编译这个显示错误:
错误C2248:'QAction :: QAction':无法访问类'QAction'中声明的私有成员
但是,如果我创建这样的QAction对象,它可以正常工作:
QAction test2(this);
Run Code Online (Sandbox Code Playgroud)
任何人都可以指出我的代码中的错误?