【问题标题】:DirCopy() Not Working目录复制()不工作
【发布时间】:2013-06-25 21:17:10
【问题描述】:

我在 AutoIT 工作,编写一个基本任务脚本,我必须在 50 多个工作站上重复。

我需要将一个目录及其子目录和文件(递归)复制到网络共享作为备份。由于某种原因,DirCopy() 根本不起作用。

我尝试在几个不同的目录上运行它(考虑权限问题,我是域管理员帐户),尝试执行 RunAs(再次考虑权限),并且还放置了 #RequireAdmin 标签来强制程序运行在高额帐户上。没有任何效果。我什至无法让它复制空目录。

DirCopy(@DesktopDir & "\SAMPLE\TEST1", @DesktopDir & "\SAMPLE\TEST2", 0)

请指教!

【问题讨论】:

  • 如果你运行mkdir SAMPLE\TEST2 & copy /Y SAMPLE\TEST1\* SAMPLE\TEST2之类的东西,它会起作用吗?如果不是,那么错误信息是什么?
  • 我得到了这个工作(有点),请参阅下面的“答案”。这是 DirCopy() 的预期功能吗?从文档中,它似乎表明它应该像我预期的那样工作,但在我的测试中,它只有在目标目录尚未创建时才有效(允许DirCopy() 在运行时创建它)。
  • 如果您将覆盖标志设置为1,它似乎可以正常工作。你是对的,措辞暗示如果目录确实存在,那么这不是问题。
  • 嗯...谢谢。我需要将其设置为0,因为它将所有 50 个工作站备份到单个目录中的单个网络共享...现在我必须经历让它为每个备份创建一个新子目录等的麻烦。嘎……

标签: autoit


【解决方案1】:

刚想出来这个。

原来DirCopy() 是一个非常愚蠢的函数,如果目标目录已经存在(它想为你创建它),它就无法处理。因此,如果您杀死目标目录,然后运行上面的代码行,一切都按预期进行。但是,如果您将一个新文件添加到源目录(在我的示例中为 TEST1),那么它会再次中断并且什么也不做。

去看看……

现在是时候寻找使用 xcopy 之类的解决方法了...

【讨论】:

  • 哇,我第一次使用 AutoIt 已经有两分钟了,我希望不会一直这么糟糕。感谢您花时间自动回答。
猜你喜欢
  • 2015-01-16
  • 2011-06-17
  • 2021-02-17
  • 1970-01-01
  • 1970-01-01
  • 2017-09-12
  • 2010-12-21
  • 2015-03-10
  • 2014-06-03
相关资源
最近更新 更多