Srcipt vbs,moveFolder返回权限被拒绝

时间:2018-02-20 12:51:44

标签: windows vbscript

Option Explicit
dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FolderExists("C:\Users\michal\Desktop\mv_files_backup") then
fso.MoveFolder "C:\Users\michal.glowacki\Desktop\mv_files_backup\*.*", "\\192.168.10.245\backup\servers\backup_server"
Else
wscript.echo "doesn't exist"
End If

当我尝试运行此脚本时,我遇到错误:

  

许可被拒绝800A0046

但是当我将MoveFolder更改为CopyFolder时,脚本正常运行。为什么我不能使用函数MoveFolder

1 个答案:

答案 0 :(得分:0)

来自MSDN

  

如果source包含通配符或目标以路径分隔符结尾   (\),假设destination指定了现有文件夹   哪个移动匹配文件。否则,假定目的地   是要创建的目标文件夹的名称。在任何一种情况下,三个   移动单个文件夹时可能发生的事情:

     

如果目标不存在,则移动该文件夹。这是   通常的情况。

     

如果destination是现有文件,则会发生错误。

     

如果目的地是目录,则会发生错误

     

如果源中使用的通配符,也会发生错误   与任何文件夹都不匹配。 MoveFolder方法在第一个停止   它遇到的错误。不会尝试回滚所做的任何更改   在错误发生之前。

我已将以粗体标记为解释您问题的部分。因为您的目标不以尾随反斜杠结束,所以您的脚本正在尝试创建该文件夹,并且失败。尝试将\添加到目标的末尾,然后报告它是否仍然无效。

试试这个:

fso.MoveFolder "C:\Users\michal.glowacki\Desktop\mv_files_backup", "\\192.168.10.245\backup\servers\backup_server\"