我目前的想法:我需要一个可以让我访问USB设备的模块。此外,我需要某种类型的deamon,它会通知我的脚本有任何传入的USB连接事件。然后我只是使用一些正则表达式来查找我想要复制的文件,然后执行复制,也许使用某个文件复制模块。使用Perl连接时,如何从USB设备自动将文件复制到硬盘中?
但是我用关键字“USB”搜索了CPAN,结果发现确实很少有相关的模块,而且看起来最有前景的称为Device :: USB的模块称它不支持Windows系统。我正在运行Windows XP SP3,顺便说一句。
我认为这种自动化应该不会太困难,用Perl。但我只是呆在那里。
任何想法?或任何其他建议?谢谢:)
UPDATE
事情并不像预期的那样容易。我相信我还有很多东西需要学习。但基于我现有的Perl知识,我设法编写了一个make-do脚本。我在这里学习。请评论我可以在哪里改进我的代码。像 感谢一直:)
use warnings;
use strict;
use File::Find;
use File::Copy;
my $from = 'I:/'; #Volume letter for USB drive in my OS
my $to = 'E:\Copy-to';
while (1) {
if (-e $from) {
last;
}else{
sleep(30);
}
}
my @files;
find(sub{ push @files, $File::Find::name if /pdf$/}, $from); #Find the PDF files in the USB drive for Copying experiment
for (@files){
copy ($_,$to);
}
搜索“USB”的问题在于USB并没有从根本上与它有任何关系。您将从HAL(而不是USB)获得插入通知,并且您将通过文件系统而不是USB与文件交互。 – hobbs 2010-03-03 02:41:53
@hobbs,谢谢你告诉我这些。 – Mike 2010-03-03 04:17:27