如何在 Windows 中对多个文件移动操作进行排队?

如何在 Windows 中对多个文件移动操作进行排队?

背景

我有一个 NAS,它在网络上存储大量备份文件:\\nas.mydomain.local\Share1\\nas.mydomain.local\Share2。两个共享都位于同一个本地卷上,因此共享相同的物理空间。该卷大约已满 80%,但这没问题,因为创建新备份时会删除旧备份。

问题

我需要通过Windows Server 2012 R2网络上的机器,因为 NAS 不支持在本地执行此操作。

如果我尝试一次移动整个文件夹(或大量文件),Windows 会抱怨说,There is not enough space on Share2. You need an additional xxx GB to copy these files.我知道 Windows 需要先复制这些文件,然后才能从源中删除它们。

不幸的是,尽管有足够的空间容纳几个文件,但 Windows 还是希望在删除任何原始文件之前复制整个文件集。这意味着已复制文件的空间直到复制整个文件集后才会再次释放,而没有足够的空间来执行此操作。

我可以单独移动文件,但随后我只能监控进度,并在前一个文件完成后启动每个新文件。这不可行,因为每个文件可能需要几个小时,而我要复制许多文件。

问题

我怎样才能将所有要移动的文件排成一行,而不会让 Windows 抱怨空间不足?

我无法在这台机器上安装任何第三方软件,因为它是一台服务器,并且我更愿意通过这台机器进行复制,因为它是唯一一台与 NAS 具有 10Gbps 连接的机器。

更新 1

PowerShell 命令Get-ChildItem '\\nas3.mydomain.local\Share1\FolderName\' | Move-Item -Destination '\\nas3.mydomain.local\Share1\FolderName\'运行良好,但我正在寻找 GUI 解决方案,因此下次我将此事委托给不太熟悉命令行/脚本的人。

如果可能的话,我还希望能够密切关注进展情况。

更新 2

似乎 Windows UI 移动会保留每个文件的修改日期时间戳,但 PowerShell 复制不会。虽然这对我当前的任务来说不是问题,但在其他情况下可能存在问题。PowerShell似乎在文件复制完成后更新上次修改日期,因此这一点不再有效。

相关内容