2013-01-23 57 views
-1

我在Perl中编写了一个脚本来将图像移动到可在PC上正常工作的网络共享驱动器。当我尝试在Mac上运行它时,我收到的都是错误消息。我无法弄清楚是什么导致了这个问题。脚本无法在Mac上运行会有什么原因吗?我使用File :: Copy和File :: Find来移动这些文件。Perl脚本无法在Mac上工作

这是错误消息我得到:

复制失败:在“脚本的位置”行没有这样的文件或目录14

任何帮助将是巨大的。谢谢。 :)

use File::Copy; 
use File::Find; 
my @source = qw (source/location); 
my $target = q{//share/drive/location}; 

while (1) 
{ sleep (10); 
    find(
    sub { 
    if (-f) { 
     print "$File::Find::name -> $target"; 
     copy($File::Find::name, $target) 
     or die(q{copy failed:} . $!); 

     } 
     }, 
    @source 
    ); 

    } 
+1

我认为“脚本的位置”是你在复制邮件时改变的,它实际上是说'/ path/to/your/script'? – Schwern

+1

我在想同样的事情。是否可以在这里发布脚本或脚本的相关部分供其他人查看? – JakeGould

+0

我已经添加了脚本。如果我尝试使用代码在我放置在Mac桌面上的两个文件夹之间进行复制,则代码完美无缺。只是当我尝试将代码复制到共享驱动器位置时,它不起作用。当我在PC上运行此脚本时,它将复制到共享驱动器,而不是在Mac上。 – Nightzrain

回答

1

您的//share/drive/location在您的Mac上无效。这就是为什么你得到no such file or directory消息。

您可以在终端窗口中通过尝试cd来测试该路径。

该位置需要安装在您的Mac上,以便您有一个有效的路径。

如果您有较新版本的OSX,可以在您的Finder或通过mount_smbfs命令完成。

一旦完成,您将有一个可以写入的路径,例如/mnt/some/path

+0

谢谢。 :)这有帮助。我没有太多使用Mac的经验。 – Nightzrain

-1

好像错误解释这一切:

copy failed:No such file or directory at "location of the script" line 14. 

是一种未加注释评论 “的剧本的位置”?看起来像你的Perl解析器试图解析一个值或变量被称为“脚本的位置”

3

你没有提供任何代码,所以我必须猜测,但我会说你正在复制的文件或您复制到的目录不存在。

,你可能会有这样的代码就行14

copy($src, $dest) or die "copy failed:$!"; 

这将有助于如果你把$src$dest到错误消息,调试程序。

copy($src, $dest) or die "copying $src to $dest failed: $!";