我正在运行一个脚本,它从一个特定的位置复制一个文件夹,如果它不存在(或不一致)。当我连续运行脚本2+次时出现问题。当第一个脚本试图复制这些文件时,第二个脚本来了,并尝试导致一团糟的同样的事情。我怎么能避免这种情况?像系统互斥体一样。检测文件正被复制到一个文件夹中
我tryed一个简单的测试与-w
,我手动复制的文件夹,而该文件夹复制我运行该脚本:
use strict;
use warnings;
my $filename = 'd:\\folder_to_copy';
if (-w $filename) {
print "i can write to the file\n";
} else {
print "yikes, i can't write to the file!\n";
}
当然,这是行不通的,因为我还是写存取权限该文件夹。 任何想法如何检查文件夹是否被复制到Perl
或使用batch commands
?
因此,为了知道我仍然在该文件夹中进行复制,我会保留一个特定的文件,直到我完成复制整个文件夹并且该文件将被检查为止。 –
@JohnDoe是的,你必须使用一个单独的文件作为锁定文件。 – nwellnhof