有没有办法在Perl脚本中使用move函数获取文件传输的进度?

问题描述:

我是一名ETL开发人员,我负责处理大量需要从一种表单处理到另一种表单的数据。因此,我所使用的大多数脚本在某些时候必须将文件从一个地方移到另一个地方。我们是一家橱窗商店。我想知道是否有办法看到当我在Perl中使用移动功能时,移动需要多少时间。如果我需要通过系统调用Windows命令来给我这个选项,那么我也可以使用它。 Perl或Windows命令行中是否有任何内容会告诉我文件传输的进度?有没有办法在Perl脚本中使用move函数获取文件传输的进度?

谢谢!

您可以使用cpan的Win32::FileOp包。

这里有一个相关的摘录:

CopyConfirm

CopyConfirm ($FileName => $FileOrDirectoryName [, ...]) 
CopyConfirm (\@FileNames => $DirectoryName [, ...]) 
CopyConfirm (\@FileNames => \@FileOrDirectoryNames [, ...]) 

复制指定的文件。在发生碰撞时,显示一个确认对话框 。显示进度 对话框。

如果成功则返回true。

MoveConfirm

移动指定的文件。作为CopyConfirm的参数

一个命令行替代方案是Term::ProgressBar,它也更加灵活,但设置起来有点困难。您必须执行以下操作:获取原始文件的大小,然后启动副本并轮询新文件的大小(从子进程)以更新进度栏。

+0

谢谢。这绝对是我正在寻找的。现在我需要一些空闲时间在我所有的脚本上实现这一点。 – tundal45 2009-05-20 01:26:39