【问题标题】:Is there a way to get the progress of a file transfer using move function in a Perl script?有没有办法在 Perl 脚本中使用 move 函数来获取文件传输的进度?
【发布时间】:2010-10-27 03:01:36
【问题描述】:

我是一名 ETL 开发人员,我需要处理大量数据,这些数据需要先从一种形式处理到另一种形式,然后才能加载到表中。因此,在某些时候,我使用的大多数脚本都必须将文件从一个地方移动到另一个地方。我们是一家橱窗店。我想知道当我在 Perl 中使用 move 函数时,是否有办法查看移动需要多少时间。如果我需要通过系统调用一个 Windows 命令来给我这个选项,那么我也可以使用它。 Perl 或 windows 命令行中有什么可以告诉我文件传输的进度吗?

谢谢!

【问题讨论】:

    标签: windows perl command-line progress file-transfer


    【解决方案1】:

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

    以下是相关摘录:

    复制确认

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

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

    如果成功则返回真。

    移动确认

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

    命令行替代方案是Term::ProgressBar,它也更加灵活,但设置起来有些困难。您必须执行以下操作:获取原始文件的大小,然后开始复制并轮询新文件的大小(来自子进程)以更新进度条。

    【讨论】:

    • 谢谢。这绝对是我一直在寻找的。现在我需要一些空闲时间在我拥有的所有脚本上实现这一点。
    猜你喜欢
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 2020-09-30
    • 2010-11-05
    • 2016-03-18
    • 2011-02-05
    • 1970-01-01
    • 2021-09-15
    相关资源
    最近更新 更多