使用批处理或VBS将文件夹和子文件夹移动到另一个文件夹

时间:2018-08-08 23:12:53

标签: batch-file vbscript directory subdirectory file-move

我正在尝试将子文件夹和文件从我的 F:驱动器上的 Dropbox文件夹中移动到单独的 ,因此清空我的Dropbox并在备份文件时释放其中的空间。

我批量尝试了此操作

MOVE /-Y "F:\Dropbox\files\camera" "F:\backup\Camera\"
pause

但是即使以管理员身份运行,我仍然会拒绝访问。

我也在VBS中尝试过此操作

With CreateObject("Scripting.FileSystemObject")
.MoveFile "F:\Dropbox\files\camera*", "F:\backup\Camera\"
End With

但是我只能从中找到“找不到路径”。

几乎我有些困惑,或者忽略了一些明显的问题,但是基本上我只是想用vbs或批处理制作一个小脚本,使我可以从F:\ Dropbox \中移动所有子文件夹和文件files \ camera \到F:\ backup \ camera \,因此我可以将其设置为计划任务并让其每天运行,以便清空所有文件和文件夹的Dropbox文件夹(以及我的Dropbox帐户)并备份它们

任何帮助将不胜感激,我已经搜索了许多不同的选项,但似乎没有一个专门针对我的目的。

1 个答案:

答案 0 :(得分:0)

我建议使用ROBOCOPY而不是MOVE
我有一个使用它的类似备份脚本。

请参阅:
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy

@ECHO OFF

ROBOCOPY /E /MOVE "F:\Dropbox\files\camera" "F:\backup\Camera\" 
MKDIR "F:\Dropbox\files\camera"

选项:

/E    : Copy Subfolders, including Empty Subfolders.
/MOVE : Move files and dirs (delete from source after copying).

由于/MOVE的切换,我需要重新创建源目录,因为ROBOCOPY将其移动到了目标目录。默认情况下,ROBOCOPY如果失败将重试该操作。请参见/R:n/W:n选项对其进行自定义。同样,该命令将在终端上显示很多信息消息,但是您可以使用ROBOCOPY的日志记录选项(例如/NJH/NJS等)对其进行自定义。

对于“访问被拒绝”错误,请确保:

  • 您具有对目标文件夹的写访问权限
    (通过仅使用MKDIR "F:\backup\Camera\some_file.txt"创建批处理文件进行测试)
    (通过仅使用MKDIR "F:\backup\Camera\some_folder"创建批处理文件进行测试)
  • 在运行脚本之前,未在任何地方使用或打开正在移动的文件
    (例如,它没有在Dropbox应用中打开。)