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

Move a Folder and Subfolders to another Folder using Batch or VBS

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

我批量试过这个:

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 帐户)的所有文件和文件夹并备份它们。

任何帮助将不胜感激,我已经搜索了许多不同的选项并且 none 似乎专门用于我的目的。

我建议使用 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 等)自定义它。

对于 "Access Denied" 错误,请确保:

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